plugin(kiali): add kiali-frontend (#2223)
Signed-off-by: Alberto Gutierrez <aljesusg@gmail.com>
|
|
@ -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)
|
||||
|
|
@ -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/^ *//')
|
||||
```
|
||||
|
|
@ -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: <RESOURCE_NS>
|
||||
```
|
||||
|
||||
#### 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 = (
|
||||
<FlatRoutes>
|
||||
{/* ... */}
|
||||
{/* highlight-add-next-line */}
|
||||
<Route path="/kiali" element={<KialiPage />} />
|
||||
</FlatRoutes>
|
||||
);
|
||||
```
|
||||
|
||||
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<{}>) => (
|
||||
<SidebarPage>
|
||||
<Sidebar>
|
||||
<SidebarGroup label="Menu" icon={<MenuIcon />}>
|
||||
{/* ... */}
|
||||
{/* highlight-add-next-line */}
|
||||
<SidebarItem icon={KialiIcon} to="kiali" text="Kiali" />
|
||||
</SidebarGroup>
|
||||
{/* ... */}
|
||||
</Sidebar>
|
||||
{children}
|
||||
</SidebarPage>
|
||||
);
|
||||
```
|
||||
|
||||
- `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';
|
||||
|
||||
const serviceEntityPage = (
|
||||
<EntityLayout>
|
||||
{/* ... */}
|
||||
{/* highlight-add-start */}
|
||||
<EntityLayout.Route path="/kiali" title="kiali">
|
||||
<EntityKialiContent />
|
||||
</EntityLayout.Route>
|
||||
{/* highlight-add-end */}
|
||||
</EntityLayout>
|
||||
);
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
To generate knip reports for this app, run:
|
||||
Authentication methods:
|
||||
|
||||
```sh
|
||||
yarn backstage-repo-tools knip-reports
|
||||
```
|
||||
- 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.<ENVIRONMENT_NAME>` 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.
|
||||
|
||||

|
||||
|
||||
2. We can see the GraphCard in the overview section
|
||||
|
||||

|
||||
|
||||
3. Go to the **Kiali** tab.
|
||||
|
||||
The **Kiali** tab displays the Overview view associated to a Servicemesh.
|
||||
|
||||

|
||||
|
||||
An If we scroll down we can see the full picture
|
||||
|
||||

|
||||
|
||||
To see the full view we can select the kiali option sidebar.
|
||||
|
||||

|
||||
|
||||
## Development
|
||||
|
||||
To develop/contribute in kiali plugin follow [these instructions](./DEVELOPMENT.md)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -1 +1 @@
|
|||
{ "version": "1.32.0" }
|
||||
{ "version": "1.32.2" }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
public
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
||||
|
|
@ -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();
|
||||
});
|
||||
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 883 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Backstage is an open source framework for building developer portals"
|
||||
/>
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link
|
||||
rel="manifest"
|
||||
href="<%= publicPath %>/manifest.json"
|
||||
crossorigin="use-credentials"
|
||||
/>
|
||||
<link rel="icon" href="<%= publicPath %>/favicon.ico" />
|
||||
<link rel="shortcut icon" href="<%= publicPath %>/favicon.ico" />
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="<%= publicPath %>/apple-touch-icon.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="<%= publicPath %>/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="<%= publicPath %>/favicon-16x16.png"
|
||||
/>
|
||||
<link
|
||||
rel="mask-icon"
|
||||
href="<%= publicPath %>/safari-pinned-tab.svg"
|
||||
color="#5bbad5"
|
||||
/>
|
||||
<title><%= config.getOptionalString('app.title') ?? 'Backstage' %></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `yarn start`.
|
||||
To create a production bundle, use `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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"
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="682.667" height="682.667" preserveAspectRatio="xMidYMid meet" version="1.0" viewBox="0 0 512 512"><metadata>Created by potrace 1.11, written by Peter Selinger 2001-2013</metadata><g fill="#000" stroke="none"><path d="M492 4610 c-4 -3 -8 -882 -7 -1953 l0 -1948 850 2 c898 1 945 3 1118 49 505 134 823 531 829 1037 2 136 -9 212 -44 323 -40 125 -89 218 -163 310 -35 43 -126 128 -169 157 -22 15 -43 30 -46 33 -12 13 -131 70 -188 91 l-64 22 60 28 c171 77 317 224 403 404 64 136 92 266 91 425 -5 424 -245 770 -642 923 -79 30 -105 39 -155 50 -11 3 -38 10 -60 15 -22 6 -60 13 -85 17 -25 3 -58 9 -75 12 -36 8 -1643 11 -1653 3z m1497 -743 c236 -68 352 -254 305 -486 -26 -124 -110 -224 -232 -277 -92 -40 -151 -46 -439 -49 l-283 -3 -1 27 c-1 36 -1 760 0 790 l1 23 298 -5 c226 -4 310 -9 351 -20z m-82 -1538 c98 -3 174 -19 247 -52 169 -78 257 -212 258 -395 0 -116 -36 -221 -100 -293 -64 -72 -192 -135 -314 -155 -23 -3 -181 -7 -350 -8 l-308 -2 -1 26 c-6 210 1 874 9 879 9 5 366 6 559 0z" transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"/><path d="M4160 1789 c-275 -24 -499 -263 -503 -536 -1 -115 21 -212 66 -292 210 -369 697 -402 950 -65 77 103 110 199 111 329 0 50 -6 113 -13 140 -16 58 -62 155 -91 193 -33 43 -122 132 -132 132 -5 0 -26 11 -46 25 -85 56 -219 85 -342 74z" transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
|
@ -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(<App />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(rendered.baseElement).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -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 => <SignInPage {...props} auto providers={['guest']} />,
|
||||
},
|
||||
});
|
||||
|
||||
const routes = (
|
||||
<FlatRoutes>
|
||||
<Route path="/" element={<Navigate to="catalog" />} />
|
||||
<Route path="/catalog" element={<CatalogIndexPage />} />
|
||||
<Route
|
||||
path="/catalog/:namespace/:kind/:name"
|
||||
element={<CatalogEntityPage />}
|
||||
>
|
||||
{entityPage}
|
||||
</Route>
|
||||
<Route path="/docs" element={<TechDocsIndexPage />} />
|
||||
<Route
|
||||
path="/docs/:namespace/:kind/:name/*"
|
||||
element={<TechDocsReaderPage />}
|
||||
>
|
||||
<TechDocsAddons>
|
||||
<ReportIssue />
|
||||
</TechDocsAddons>
|
||||
</Route>
|
||||
<Route path="/create" element={<ScaffolderPage />} />
|
||||
<Route path="/api-docs" element={<ApiExplorerPage />} />
|
||||
<Route
|
||||
path="/catalog-import"
|
||||
element={
|
||||
<RequirePermission permission={catalogEntityCreatePermission}>
|
||||
<CatalogImportPage />
|
||||
</RequirePermission>
|
||||
}
|
||||
/>
|
||||
<Route path="/search" element={<SearchPage />}>
|
||||
{searchPage}
|
||||
</Route>
|
||||
<Route path="/settings" element={<UserSettingsPage />} />
|
||||
<Route path="/catalog-graph" element={<CatalogGraphPage />} />
|
||||
<Route path="/kiali" element={<KialiPage />} />
|
||||
</FlatRoutes>
|
||||
);
|
||||
|
||||
export default app.createRoot(
|
||||
<>
|
||||
<AlertDisplay />
|
||||
<OAuthRequestDialog />
|
||||
<AppRouter>
|
||||
<Root>{routes}</Root>
|
||||
</AppRouter>
|
||||
</>,
|
||||
);
|
||||
|
|
@ -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(),
|
||||
];
|
||||
|
|
@ -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 (
|
||||
<svg
|
||||
className={classes.svg}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 337.46 428.5"
|
||||
>
|
||||
<path
|
||||
className={classes.path}
|
||||
d="M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
};
|
||||
|
||||
export default LogoIcon;
|
||||
|
|
@ -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 (
|
||||
<div className={classes.root}>
|
||||
<Link to="/" underline="none" className={classes.link} aria-label="Home">
|
||||
{isOpen ? <LogoFull /> : <LogoIcon />}
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export const Root = ({ children }: PropsWithChildren<{}>) => (
|
||||
<SidebarPage>
|
||||
<Sidebar>
|
||||
<SidebarLogo />
|
||||
<SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
|
||||
<SidebarSearchModal />
|
||||
</SidebarGroup>
|
||||
<SidebarDivider />
|
||||
<SidebarGroup label="Menu" icon={<MenuIcon />}>
|
||||
{/* Kiali Menu */}
|
||||
<SidebarItem icon={KialiIcon} to="kiali" text="Kiali" />
|
||||
{/* Global nav, not org-specific */}
|
||||
<SidebarItem icon={HomeIcon} to="catalog" text="Home" />
|
||||
<MyGroupsSidebarItem
|
||||
singularTitle="My Group"
|
||||
pluralTitle="My Groups"
|
||||
icon={GroupIcon}
|
||||
/>
|
||||
<SidebarItem icon={ExtensionIcon} to="api-docs" text="APIs" />
|
||||
<SidebarItem icon={LibraryBooks} to="docs" text="Docs" />
|
||||
<SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
|
||||
{/* End global nav */}
|
||||
<SidebarDivider />
|
||||
|
||||
<SidebarScrollWrapper>
|
||||
{/* Items in this group will be scrollable if they run out of space */}
|
||||
</SidebarScrollWrapper>
|
||||
</SidebarGroup>
|
||||
<SidebarSpace />
|
||||
<SidebarDivider />
|
||||
<SidebarGroup
|
||||
label="Settings"
|
||||
icon={<UserSettingsSignInAvatar />}
|
||||
to="/settings"
|
||||
>
|
||||
<SidebarSettings />
|
||||
</SidebarGroup>
|
||||
</Sidebar>
|
||||
{children}
|
||||
</SidebarPage>
|
||||
);
|
||||
|
|
@ -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';
|
||||
|
|
@ -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 = (
|
||||
<EntityTechdocsContent>
|
||||
<TechDocsAddons>
|
||||
<ReportIssue />
|
||||
</TechDocsAddons>
|
||||
</EntityTechdocsContent>
|
||||
);
|
||||
|
||||
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
|
||||
<EntitySwitch>
|
||||
{/*
|
||||
Here you can add support for different CI/CD services, for example
|
||||
using @backstage-community/plugin-github-actions as follows:
|
||||
<EntitySwitch.Case if={isGithubActionsAvailable}>
|
||||
<EntityGithubActionsContent />
|
||||
</EntitySwitch.Case>
|
||||
*/}
|
||||
|
||||
<EntitySwitch.Case>
|
||||
<EmptyState
|
||||
title="No CI/CD available for this entity"
|
||||
missing="info"
|
||||
description="You need to add an annotation to your component if you want to enable CI/CD for it. You can read more about annotations in Backstage by clicking the button below."
|
||||
action={
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
href="https://backstage.io/docs/features/software-catalog/well-known-annotations"
|
||||
>
|
||||
Read more
|
||||
</Button>
|
||||
}
|
||||
/>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
);
|
||||
|
||||
const entityWarningContent = (
|
||||
<>
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={isOrphan}>
|
||||
<Grid item xs={12}>
|
||||
<EntityOrphanWarning />
|
||||
</Grid>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasRelationWarnings}>
|
||||
<Grid item xs={12}>
|
||||
<EntityRelationWarning />
|
||||
</Grid>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasCatalogProcessingErrors}>
|
||||
<Grid item xs={12}>
|
||||
<EntityProcessingErrorsPanel />
|
||||
</Grid>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
</>
|
||||
);
|
||||
|
||||
const overviewContent = (
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
{entityWarningContent}
|
||||
<Grid item md={6}>
|
||||
<EntityKialiGraphCard />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityAboutCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6} xs={12}>
|
||||
<EntityCatalogGraphCard variant="gridItem" height={400} />
|
||||
</Grid>
|
||||
|
||||
<Grid item md={4} xs={12}>
|
||||
<EntityLinksCard />
|
||||
</Grid>
|
||||
<Grid item md={8} xs={12}>
|
||||
<EntityHasSubcomponentsCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
);
|
||||
|
||||
const serviceEntityPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
{overviewContent}
|
||||
</EntityLayout.Route>
|
||||
<EntityLayout.Route path="/kiali" title="kiali">
|
||||
<EntityKialiContent />
|
||||
</EntityLayout.Route>
|
||||
<EntityLayout.Route path="/ci-cd" title="CI/CD">
|
||||
{cicdContent}
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route
|
||||
path="/kubernetes"
|
||||
title="Kubernetes"
|
||||
if={isKubernetesAvailable}
|
||||
>
|
||||
<EntityKubernetesContent />
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/api" title="API">
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
<Grid item md={6}>
|
||||
<EntityProvidedApisCard />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityConsumedApisCard />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/dependencies" title="Dependencies">
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
<Grid item md={6}>
|
||||
<EntityDependsOnComponentsCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityDependsOnResourcesCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/docs" title="Docs">
|
||||
{techdocsContent}
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const websiteEntityPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
{overviewContent}
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/ci-cd" title="CI/CD">
|
||||
{cicdContent}
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route
|
||||
path="/kubernetes"
|
||||
title="Kubernetes"
|
||||
if={isKubernetesAvailable}
|
||||
>
|
||||
<EntityKubernetesContent />
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/dependencies" title="Dependencies">
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
<Grid item md={6}>
|
||||
<EntityDependsOnComponentsCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityDependsOnResourcesCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/docs" title="Docs">
|
||||
{techdocsContent}
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
/**
|
||||
* 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 = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
{overviewContent}
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/docs" title="Docs">
|
||||
{techdocsContent}
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const componentPage = (
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={isComponentType('service')}>
|
||||
{serviceEntityPage}
|
||||
</EntitySwitch.Case>
|
||||
|
||||
<EntitySwitch.Case if={isComponentType('website')}>
|
||||
{websiteEntityPage}
|
||||
</EntitySwitch.Case>
|
||||
|
||||
<EntitySwitch.Case>{defaultEntityPage}</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
);
|
||||
|
||||
const apiPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
<Grid container spacing={3}>
|
||||
{entityWarningContent}
|
||||
<Grid item md={6}>
|
||||
<EntityAboutCard />
|
||||
</Grid>
|
||||
<Grid item md={6} xs={12}>
|
||||
<EntityCatalogGraphCard variant="gridItem" height={400} />
|
||||
</Grid>
|
||||
<Grid item md={4} xs={12}>
|
||||
<EntityLinksCard />
|
||||
</Grid>
|
||||
<Grid container item md={12}>
|
||||
<Grid item md={6}>
|
||||
<EntityProvidingComponentsCard />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityConsumingComponentsCard />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/definition" title="Definition">
|
||||
<Grid container spacing={3}>
|
||||
<Grid item xs={12}>
|
||||
<EntityApiDefinitionCard />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const userPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
<Grid container spacing={3}>
|
||||
{entityWarningContent}
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityUserProfileCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityOwnershipCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const groupPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
<Grid container spacing={3}>
|
||||
{entityWarningContent}
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityGroupProfileCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityOwnershipCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityMembersListCard />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={6}>
|
||||
<EntityLinksCard />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const systemPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
{entityWarningContent}
|
||||
<Grid item md={6}>
|
||||
<EntityAboutCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6} xs={12}>
|
||||
<EntityCatalogGraphCard variant="gridItem" height={400} />
|
||||
</Grid>
|
||||
<Grid item md={4} xs={12}>
|
||||
<EntityLinksCard />
|
||||
</Grid>
|
||||
<Grid item md={8}>
|
||||
<EntityHasComponentsCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityHasApisCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityHasResourcesCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
<EntityLayout.Route path="/diagram" title="Diagram">
|
||||
<EntityCatalogGraphCard
|
||||
variant="gridItem"
|
||||
direction={Direction.TOP_BOTTOM}
|
||||
title="System Diagram"
|
||||
height={700}
|
||||
relations={[
|
||||
RELATION_PART_OF,
|
||||
RELATION_HAS_PART,
|
||||
RELATION_API_CONSUMED_BY,
|
||||
RELATION_API_PROVIDED_BY,
|
||||
RELATION_CONSUMES_API,
|
||||
RELATION_PROVIDES_API,
|
||||
RELATION_DEPENDENCY_OF,
|
||||
RELATION_DEPENDS_ON,
|
||||
]}
|
||||
unidirectional={false}
|
||||
/>
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
const domainPage = (
|
||||
<EntityLayout>
|
||||
<EntityLayout.Route path="/" title="Overview">
|
||||
<Grid container spacing={3} alignItems="stretch">
|
||||
{entityWarningContent}
|
||||
<Grid item md={6}>
|
||||
<EntityAboutCard variant="gridItem" />
|
||||
</Grid>
|
||||
<Grid item md={6} xs={12}>
|
||||
<EntityCatalogGraphCard variant="gridItem" height={400} />
|
||||
</Grid>
|
||||
<Grid item md={6}>
|
||||
<EntityHasSystemsCard variant="gridItem" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EntityLayout.Route>
|
||||
</EntityLayout>
|
||||
);
|
||||
|
||||
export const entityPage = (
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={isKind('component')} children={componentPage} />
|
||||
<EntitySwitch.Case if={isKind('api')} children={apiPage} />
|
||||
<EntitySwitch.Case if={isKind('group')} children={groupPage} />
|
||||
<EntitySwitch.Case if={isKind('user')} children={userPage} />
|
||||
<EntitySwitch.Case if={isKind('system')} children={systemPage} />
|
||||
<EntitySwitch.Case if={isKind('domain')} children={domainPage} />
|
||||
|
||||
<EntitySwitch.Case>{defaultEntityPage}</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
);
|
||||
|
|
@ -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 (
|
||||
<Page themeId="home">
|
||||
<Header title="Search" />
|
||||
<Content>
|
||||
<Grid container direction="row">
|
||||
<Grid item xs={12}>
|
||||
<Paper className={classes.bar}>
|
||||
<SearchBar />
|
||||
</Paper>
|
||||
</Grid>
|
||||
<Grid item xs={3}>
|
||||
<SearchType.Accordion
|
||||
name="Result Type"
|
||||
defaultValue="software-catalog"
|
||||
types={[
|
||||
{
|
||||
value: 'software-catalog',
|
||||
name: 'Software Catalog',
|
||||
icon: <CatalogIcon />,
|
||||
},
|
||||
{
|
||||
value: 'techdocs',
|
||||
name: 'Documentation',
|
||||
icon: <DocsIcon />,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
<Paper className={classes.filters}>
|
||||
{types.includes('techdocs') && (
|
||||
<SearchFilter.Select
|
||||
className={classes.filter}
|
||||
label="Entity"
|
||||
name="name"
|
||||
values={async () => {
|
||||
// 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;
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
<SearchFilter.Select
|
||||
className={classes.filter}
|
||||
label="Kind"
|
||||
name="kind"
|
||||
values={['Component', 'Template']}
|
||||
/>
|
||||
<SearchFilter.Checkbox
|
||||
className={classes.filter}
|
||||
label="Lifecycle"
|
||||
name="lifecycle"
|
||||
values={['experimental', 'production']}
|
||||
/>
|
||||
</Paper>
|
||||
</Grid>
|
||||
<Grid item xs={9}>
|
||||
<SearchPagination />
|
||||
<SearchResult>
|
||||
<CatalogSearchResultListItem icon={<CatalogIcon />} />
|
||||
<TechDocsSearchResultListItem icon={<DocsIcon />} />
|
||||
</SearchResult>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Content>
|
||||
</Page>
|
||||
);
|
||||
};
|
||||
|
||||
export const searchPage = <SearchPage />;
|
||||
|
|
@ -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(<App />);
|
||||
|
|
@ -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';
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
||||
|
|
@ -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"]
|
||||
|
|
@ -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)
|
||||
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
|
@ -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();
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
dist-dynamic
|
||||
dist-scalprum
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
dist
|
||||
dist-types
|
||||
coverage
|
||||
.vscode
|
||||
CHANGELOG.md
|
||||
generated
|
||||
templates
|
||||
*.hbs
|
||||
renovate.json
|
||||
dist-dynamic
|
||||
dist-scalprum
|
||||
playwright-report
|
||||
|
|
@ -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/(.*)$',
|
||||
'',
|
||||
'<THIRD_PARTY_MODULES>',
|
||||
'',
|
||||
'^@backstage-community/(.*)$',
|
||||
'',
|
||||
'<BUILTIN_MODULES>',
|
||||
'',
|
||||
'^[.]',
|
||||
],
|
||||
};
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# Kiali plugin for Backstage
|
||||
|
||||
The Kiali Plugin
|
||||
This plugin exposes information about your entity-specific ServiceMesh objects.
|
||||
|
|
@ -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<GraphDefinition> {
|
||||
return kialiData.graph;
|
||||
}
|
||||
|
||||
setEntity(entity?: Entity): void {
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
async status(): Promise<StatusState> {
|
||||
return kialiData.status;
|
||||
}
|
||||
|
||||
async getAuthInfo(): Promise<AuthInfo> {
|
||||
return kialiData.auth;
|
||||
}
|
||||
async getStatus(): Promise<StatusState> {
|
||||
return kialiData.status;
|
||||
}
|
||||
|
||||
async getNamespaces(): Promise<Namespace[]> {
|
||||
return filterNsByAnnotation(
|
||||
kialiData.namespaces as Namespace[],
|
||||
this.entity,
|
||||
);
|
||||
}
|
||||
|
||||
async getWorkloads(
|
||||
namespace: string,
|
||||
duration: number,
|
||||
): Promise<WorkloadListItem[]> {
|
||||
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<Workload> {
|
||||
const parsedName = name.replace(/-/g, '');
|
||||
return kialiData.namespacesData[namespace].workloads[parsedName];
|
||||
}
|
||||
|
||||
async getIstioConfig(
|
||||
namespace: string,
|
||||
_: string[],
|
||||
__: boolean,
|
||||
___: string,
|
||||
____: string,
|
||||
_____?: string,
|
||||
): Promise<IstioConfigList> {
|
||||
return kialiData.namespacesData[namespace].istioConfigList;
|
||||
}
|
||||
|
||||
async getServerConfig(): Promise<ServerConfig> {
|
||||
return kialiData.config;
|
||||
}
|
||||
|
||||
async getNamespaceAppHealth(
|
||||
namespace: string,
|
||||
duration: DurationInSeconds,
|
||||
cluster?: string,
|
||||
queryTime?: TimeInSeconds,
|
||||
): Promise<NamespaceAppHealth> {
|
||||
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<NamespaceServiceHealth> {
|
||||
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<NamespaceWorkloadHealth> {
|
||||
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<TLSStatus> {
|
||||
const queryParams: any = {};
|
||||
if (cluster) {
|
||||
queryParams.clusterName = cluster;
|
||||
}
|
||||
return kialiData.namespacesData[namespace].tls;
|
||||
}
|
||||
|
||||
async getMeshTls(cluster?: string): Promise<TLSStatus> {
|
||||
const queryParams: any = {};
|
||||
if (cluster) {
|
||||
queryParams.clusterName = cluster;
|
||||
}
|
||||
return kialiData.meshTls;
|
||||
}
|
||||
|
||||
async getOutboundTrafficPolicyMode(): Promise<OutboundTrafficPolicy> {
|
||||
return kialiData.outboundTrafficPolicy;
|
||||
}
|
||||
|
||||
async getCanaryUpgradeStatus(): Promise<CanaryUpgradeStatus> {
|
||||
return kialiData.meshCanaryStatus;
|
||||
}
|
||||
|
||||
async getIstiodResourceThresholds(): Promise<IstiodResourceThresholds> {
|
||||
return kialiData.meshIstioResourceThresholds;
|
||||
}
|
||||
|
||||
async getConfigValidations(cluster?: string): Promise<ValidationStatus> {
|
||||
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<IstioConfigsMap> {
|
||||
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<Readonly<IstioMetricsMap>> {
|
||||
return kialiData.namespacesData[namespace].metrics[params.direction][
|
||||
params.duration as number
|
||||
];
|
||||
}
|
||||
|
||||
async getIstioStatus(cluster?: string): Promise<ComponentStatus[]> {
|
||||
const queryParams: any = {};
|
||||
if (cluster) {
|
||||
queryParams.clusterName = cluster;
|
||||
}
|
||||
return kialiData.istioStatus;
|
||||
}
|
||||
|
||||
async getIstioCertsInfo(): Promise<CertsInfo[]> {
|
||||
return kialiData.istioCertsInfo;
|
||||
}
|
||||
isDevEnv(): boolean {
|
||||
return true;
|
||||
}
|
||||
|
||||
async getPodLogs(
|
||||
_: string,
|
||||
__: string,
|
||||
container?: string,
|
||||
___?: number,
|
||||
____?: number,
|
||||
_duration?: DurationInSeconds,
|
||||
_isProxy?: boolean,
|
||||
_cluster?: string,
|
||||
): Promise<PodLogs> {
|
||||
if (container === 'istio-proxy') {
|
||||
return kialiData.istioLogs;
|
||||
}
|
||||
return kialiData.logs;
|
||||
}
|
||||
|
||||
setPodEnvoyProxyLogLevel = async (
|
||||
_namespace: string,
|
||||
_name: string,
|
||||
_level: string,
|
||||
_cluster?: string,
|
||||
): Promise<void> => {
|
||||
return;
|
||||
};
|
||||
|
||||
async getWorkloadSpans(
|
||||
_: string,
|
||||
__: string,
|
||||
___: TracingQuery,
|
||||
____?: string,
|
||||
): Promise<Span[]> {
|
||||
return kialiData.spanLogs;
|
||||
}
|
||||
|
||||
async getServices(
|
||||
namespace: string,
|
||||
_?: ServiceListQuery,
|
||||
): Promise<ServiceList> {
|
||||
return kialiData.services[namespace];
|
||||
}
|
||||
|
||||
async getIstioConfigDetail(
|
||||
namespace: string,
|
||||
objectType: string,
|
||||
object: string,
|
||||
_validate: boolean,
|
||||
_cluster?: string,
|
||||
): Promise<IstioConfigDetails> {
|
||||
return kialiData.namespacesData[namespace].istioConfigDetails[objectType][
|
||||
object
|
||||
];
|
||||
}
|
||||
|
||||
async getServiceDetail(
|
||||
namespace: string,
|
||||
service: string,
|
||||
_validate: boolean,
|
||||
_cluster?: string,
|
||||
rateInterval?: DurationInSeconds,
|
||||
): Promise<ServiceDetailsInfo> {
|
||||
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<AppList> => {
|
||||
return kialiData.apps[namespace];
|
||||
};
|
||||
|
||||
getApp = async (
|
||||
namespace: string,
|
||||
app: string,
|
||||
_params: AppQuery,
|
||||
_cluster?: string,
|
||||
): Promise<App> => {
|
||||
const parsedName = app.replace(/-/g, '');
|
||||
return kialiData.namespacesData[namespace].apps[parsedName];
|
||||
};
|
||||
|
||||
getCrippledFeatures = async (): Promise<KialiCrippledFeatures> => {
|
||||
return kialiData.crippledFeatures;
|
||||
};
|
||||
|
||||
getWorkloadDashboard = async (
|
||||
namespace: string,
|
||||
_workload: string,
|
||||
_params: IstioMetricsOptions,
|
||||
_cluster?: string,
|
||||
): Promise<DashboardModel> => {
|
||||
return kialiData.namespacesData[namespace].dashboard;
|
||||
};
|
||||
|
||||
getServiceDashboard = async (
|
||||
namespace: string,
|
||||
_service: string,
|
||||
_params: IstioMetricsOptions,
|
||||
_cluster?: string,
|
||||
): Promise<DashboardModel> => {
|
||||
return kialiData.namespacesData[namespace].dashboard;
|
||||
};
|
||||
|
||||
getAppDashboard = async (
|
||||
namespace: string,
|
||||
_app: string,
|
||||
_params: IstioMetricsOptions,
|
||||
_cluster?: string,
|
||||
): Promise<DashboardModel> => {
|
||||
return kialiData.namespacesData[namespace].dashboard;
|
||||
};
|
||||
|
||||
getGrafanaInfo = async (): Promise<GrafanaInfo> => {
|
||||
return kialiData.grafanaInfo;
|
||||
};
|
||||
|
||||
getAppSpans = async (
|
||||
namespace: string,
|
||||
_app: string,
|
||||
_params: TracingQuery,
|
||||
_cluster?: string,
|
||||
): Promise<Span[]> => {
|
||||
return kialiData.namespacesData[namespace].spans;
|
||||
};
|
||||
|
||||
getServiceSpans = async (
|
||||
namespace: string,
|
||||
_service: string,
|
||||
_params: TracingQuery,
|
||||
_cluster?: string,
|
||||
): Promise<Span[]> => {
|
||||
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 <WorkloadDetailsPage />;
|
||||
case 'services':
|
||||
return <ServiceDetailsPage />;
|
||||
case 'applications':
|
||||
return <AppDetailsPage />;
|
||||
case 'istio':
|
||||
return <IstioConfigDetailsPage />;
|
||||
case 'graph':
|
||||
return <TrafficGraphPage />;
|
||||
default:
|
||||
return <OverviewPage />;
|
||||
}
|
||||
}
|
||||
switch (route) {
|
||||
case 0:
|
||||
return <OverviewPage />;
|
||||
case 1:
|
||||
return <WorkloadListPage />;
|
||||
case 2:
|
||||
return <ServiceListPage />;
|
||||
case 3:
|
||||
return <AppListPage />;
|
||||
case 4:
|
||||
return <IstioConfigListPage />;
|
||||
case 5:
|
||||
return <TrafficGraphPage />;
|
||||
default:
|
||||
return <KialiNoPath />;
|
||||
}
|
||||
};
|
||||
|
||||
interface Props {
|
||||
children?: React.ReactNode;
|
||||
entity?: Entity;
|
||||
isEntity?: boolean;
|
||||
}
|
||||
|
||||
export const MockProvider = (props: Props) => {
|
||||
const [selectedTab, setSelectedTab] = React.useState<number>(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 = (
|
||||
<KialiProvider entity={props.entity || mockEntity}>
|
||||
<Page themeId="tool">
|
||||
{!props.isEntity && (
|
||||
<>
|
||||
<KialiHeader />
|
||||
<HeaderTabs
|
||||
selectedIndex={selectedTab}
|
||||
onChange={(index: number) => {
|
||||
setSelectedTab(index);
|
||||
}}
|
||||
tabs={tabs.map(({ label }, index) => ({
|
||||
id: tabs[index].route,
|
||||
label,
|
||||
}))}
|
||||
/>
|
||||
|
||||
{getSelected(selectedTab)}
|
||||
</>
|
||||
)}
|
||||
{props.isEntity && <Content>{getEntityRoutes()}</Content>}
|
||||
</Page>
|
||||
</KialiProvider>
|
||||
);
|
||||
|
||||
const viewIfEntity = props.isEntity && (
|
||||
<EntityProvider entity={mockEntity}>{content}</EntityProvider>
|
||||
);
|
||||
|
||||
return (
|
||||
<TestApiProvider apis={[[kialiApiRef, new MockKialiClient()]]}>
|
||||
{viewIfEntity || content}
|
||||
</TestApiProvider>
|
||||
);
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "strategy": "anonymous", "sessionInfo": {} }
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"requestSize": false,
|
||||
"requestSizeAverage": false,
|
||||
"requestSizePercentiles": false,
|
||||
"responseSize": false,
|
||||
"responseSizeAverage": false,
|
||||
"responseSizePercentiles": false,
|
||||
"responseTime": false,
|
||||
"responseTimeAverage": false,
|
||||
"responseTimePercentiles": false
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "externalLinks": [] }
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -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 }
|
||||
]
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"currentVersion": "1.3",
|
||||
"upgradeVersion": "1.4",
|
||||
"migratedNamespaces": ["bookinfo"],
|
||||
"pendingNamespaces": ["travel-agency"]
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "memory": 64, "cpu": 8 }
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "N/A" }
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "mode": "ALLOW_ANY" }
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {} }
|
||||
}
|
||||
|
|
@ -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,
|
||||
};
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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": {}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||