From 15b8985eaad7c5df6612774d499e8e6574e390d2 Mon Sep 17 00:00:00 2001 From: srodenhuis Date: Tue, 29 Oct 2024 13:25:18 +0000 Subject: [PATCH] deploy: 9f5f1656b864555e0cec5f88af7b6bf66f4e87c3 --- 404.html | 2 +- assets/js/6ef6f599.c0449fec.js | 1 - assets/js/6ef6f599.c4798feb.js | 1 + ...n.3d7374db.js => runtime~main.843a192e.js} | 2 +- docs.html | 2 +- docs/akamai-app-platform/introduction.html | 2 +- docs/apps/alertmanager.html | 2 +- docs/apps/apps-overview.html | 2 +- docs/apps/argocd.html | 2 +- docs/apps/certmanager.html | 2 +- docs/apps/cloudnativepg.html | 2 +- docs/apps/drone.html | 2 +- docs/apps/external-dns.html | 2 +- docs/apps/falco.html | 2 +- docs/apps/gitea.html | 2 +- docs/apps/grafana.html | 2 +- docs/apps/harbor.html | 2 +- docs/apps/ingress-nginx.html | 2 +- docs/apps/istio.html | 2 +- docs/apps/jaeger.html | 2 +- docs/apps/keycloak.html | 2 +- docs/apps/kiali.html | 2 +- docs/apps/knative.html | 2 +- docs/apps/kured.html | 2 +- docs/apps/kyverno.html | 2 +- docs/apps/loki.html | 2 +- docs/apps/minio.html | 2 +- docs/apps/otel.html | 2 +- docs/apps/prometheus.html | 2 +- docs/apps/rabbitmq.html | 2 +- docs/apps/sealed-secrets.html | 2 +- docs/apps/tekton.html | 2 +- docs/apps/tempo.html | 2 +- docs/apps/thanos.html | 2 +- docs/apps/trivy.html | 2 +- docs/apps/velero.html | 2 +- docs/for-devs/console/apps.html | 2 +- docs/for-devs/console/builds.html | 2 +- docs/for-devs/console/catalog.html | 2 +- docs/for-devs/console/dashboard.html | 2 +- docs/for-devs/console/deploy-changes.html | 2 +- docs/for-devs/console/netpols.html | 2 +- docs/for-devs/console/overview.html | 2 +- docs/for-devs/console/projects.html | 2 +- docs/for-devs/console/secrets.html | 2 +- docs/for-devs/console/security-policies.html | 2 +- docs/for-devs/console/services.html | 2 +- docs/for-devs/console/settings.html | 2 +- docs/for-devs/console/shell.html | 2 +- docs/for-devs/console/workloads.html | 2 +- docs/for-ops/cli/apply.html | 2 +- docs/for-ops/cli/bash.html | 2 +- docs/for-ops/cli/bootstrap.html | 2 +- docs/for-ops/cli/commit.html | 2 +- docs/for-ops/cli/decrypt.html | 2 +- docs/for-ops/cli/deploying.html | 2 +- docs/for-ops/cli/destroy.html | 2 +- docs/for-ops/cli/diff.html | 2 +- docs/for-ops/cli/encrypt.html | 2 +- docs/for-ops/cli/installation.html | 2 +- docs/for-ops/cli/known-issues.html | 2 +- docs/for-ops/cli/lint.html | 2 +- docs/for-ops/cli/pull.html | 2 +- docs/for-ops/cli/rotate-keys.html | 2 +- docs/for-ops/cli/status.html | 2 +- docs/for-ops/cli/sync.html | 2 +- docs/for-ops/cli/template.html | 2 +- docs/for-ops/cli/test.html | 2 +- docs/for-ops/cli/validate-templates.html | 2 +- docs/for-ops/cli/validate-values.html | 2 +- docs/for-ops/cli/values.html | 2 +- docs/for-ops/cli/x.html | 2 +- docs/for-ops/console/apps.html | 2 +- docs/for-ops/console/backups.html | 2 +- docs/for-ops/console/builds.html | 2 +- docs/for-ops/console/dashboard.html | 2 +- docs/for-ops/console/deploy-changes.html | 2 +- docs/for-ops/console/maintenance.html | 2 +- docs/for-ops/console/netpols.html | 2 +- docs/for-ops/console/overview.html | 2 +- docs/for-ops/console/projects.html | 2 +- docs/for-ops/console/services.html | 2 +- docs/for-ops/console/settings/alerts.html | 2 +- docs/for-ops/console/settings/backup.html | 2 +- docs/for-ops/console/settings/cluster.html | 2 +- docs/for-ops/console/settings/dns.html | 2 +- docs/for-ops/console/settings/general.html | 2 +- docs/for-ops/console/settings/ingress.html | 2 +- .../console/settings/key-management.html | 2 +- docs/for-ops/console/settings/obj.html | 2 +- docs/for-ops/console/settings/oidc.html | 2 +- docs/for-ops/console/settings/smtp.html | 2 +- docs/for-ops/console/shell.html | 2 +- docs/for-ops/console/teams.html | 2 +- docs/for-ops/console/workloads.html | 2 +- docs/for-ops/how-to/backups.html | 2 +- docs/for-ops/how-to/catalog.html | 2 +- docs/for-ops/how-to/clone-apl.html | 2 +- docs/for-ops/how-to/core-only.html | 2 +- docs/for-ops/how-to/ingress-classes.html | 2 +- docs/for-ops/how-to/overview.html | 2 +- docs/for-ops/how-to/use-team-admin.html | 2 +- docs/for-ops/sre/daily.html | 2 +- docs/for-ops/sre/overview.html | 2 +- docs/for-ops/sre/troubleshooting.html | 2 +- docs/get-started.html | 2 +- .../installation/akamai-cloud.html | 2 +- .../installation/byo-wildcard-cert.html | 2 +- docs/get-started/installation/custom.html | 2 +- docs/get-started/installation/dns.html | 2 +- docs/get-started/installation/entrypoint.html | 2 +- docs/get-started/installation/helm.html | 2 +- docs/get-started/installation/linode.html | 2 +- docs/get-started/installation/oidc.html | 2 +- docs/get-started/installation/overview.html | 2 +- .../installation/post-installation-steps.html | 2 +- docs/get-started/installation/sops.html | 2 +- docs/get-started/labs/auto-image-update.html | 2 +- docs/get-started/labs/build-images.html | 2 +- docs/get-started/labs/canary-deployment.html | 2 +- docs/get-started/labs/create-netpols.html | 2 +- .../labs/create-postgresql-db.html | 2 +- docs/get-started/labs/create-projects.html | 2 +- .../labs/create-rabbitmq-cluster.html | 2 +- docs/get-started/labs/create-repos.html | 2 +- .../labs/create-sealed-secrets.html | 2 +- docs/get-started/labs/create-workloads.html | 2 +- docs/get-started/labs/custom-dashboards.html | 2 +- docs/get-started/labs/custom-metrics.html | 2 +- docs/get-started/labs/custom-rules.html | 2 +- docs/get-started/labs/expose-services.html | 2 +- docs/get-started/labs/lab-prerequisites.html | 2 +- docs/get-started/labs/monitor-workloads.html | 2 +- docs/get-started/labs/overview.html | 2 +- docs/get-started/labs/push-images.html | 2 +- docs/get-started/labs/scan-containers.html | 2 +- docs/get-started/labs/scan-images.html | 2 +- docs/get-started/labs/trigger-builds.html | 2 +- docs/get-started/labs/use-catalog.html | 2 +- docs/get-started/labs/use-otel.html | 28 ++++++++++++++----- docs/get-started/labs/using-argo-cd.html | 2 +- docs/get-started/labs/view-logs.html | 2 +- docs/get-started/labs/view-metrics.html | 2 +- docs/get-started/overview.html | 2 +- index.html | 2 +- search.html | 2 +- 146 files changed, 165 insertions(+), 151 deletions(-) delete mode 100644 assets/js/6ef6f599.c0449fec.js create mode 100644 assets/js/6ef6f599.c4798feb.js rename assets/js/{runtime~main.3d7374db.js => runtime~main.843a192e.js} (99%) diff --git a/404.html b/404.html index 287415408..1088a6225 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@ - + diff --git a/assets/js/6ef6f599.c0449fec.js b/assets/js/6ef6f599.c0449fec.js deleted file mode 100644 index 148132d82..000000000 --- a/assets/js/6ef6f599.c0449fec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkredkubes_github_io=self.webpackChunkredkubes_github_io||[]).push([[1164],{6041:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var s=i(5893),t=i(1151);const l={slug:"use-otel",title:"OpenTelemetry",sidebar_label:"Use OpenTelemery"},r=void 0,c={id:"get-started/labs/use-otel",title:"OpenTelemetry",description:"In order to make a system observable, it must be instrumented. Language specific implementation of OpenTelemetry provides a way to instrument your application without touching your source code. In this lab we're going to instrument a Java application.",source:"@site/docs/get-started/labs/use-otel.md",sourceDirName:"get-started/labs",slug:"/get-started/labs/use-otel",permalink:"/docs/get-started/labs/use-otel",draft:!1,unlisted:!1,editUrl:"https://github.com/linode/linode.github.io/tree/main/docs/get-started/labs/use-otel.md",tags:[],version:"current",frontMatter:{slug:"use-otel",title:"OpenTelemetry",sidebar_label:"Use OpenTelemery"},sidebar:"mainSidebar",previous:{title:"Create Network Policies",permalink:"/docs/get-started/labs/create-netpols"},next:{title:"Canary Deployment",permalink:"/docs/get-started/labs/canary-deployment"}},o={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Build an image from source code",id:"build-an-image-from-source-code",level:2},{value:"Create a workload from the developer catalog",id:"create-a-workload-from-the-developer-catalog",level:2},{value:"Expose the service",id:"expose-the-service",level:2},{value:"See traces",id:"see-traces",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"In order to make a system observable, it must be instrumented. Language specific implementation of OpenTelemetry provides a way to instrument your application without touching your source code. In this lab we're going to instrument a Java application."}),"\n",(0,s.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(n.p,{children:"For this lab it is required to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Enable ",(0,s.jsx)(n.code,{children:"Tempo"})]}),"\n",(0,s.jsxs)(n.li,{children:["Enable ",(0,s.jsx)(n.code,{children:"Otel"})]}),"\n",(0,s.jsxs)(n.li,{children:["Enable ",(0,s.jsx)(n.code,{children:"Loki"})]}),"\n",(0,s.jsxs)(n.li,{children:["Enable ",(0,s.jsx)(n.code,{children:"Grafana"})]}),"\n",(0,s.jsxs)(n.li,{children:["Enable tracing for ",(0,s.jsx)(n.code,{children:"Istio"})," and ",(0,s.jsx)(n.code,{children:"Nginx Ingress"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"build-an-image-from-source-code",children:"Build an image from source code"}),"\n",(0,s.jsxs)(n.p,{children:["For this lab we're going to use the ",(0,s.jsx)(n.a,{href:"https://github.com/spring-projects/spring-petclinic",children:"Spring PetClinic Sample Application"}),". Follow these steps to build an image from source code:"]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"Using a Gitea repository is not required. You can also build using public repositories."})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a new repo called ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Clone the Spring PetClinic Sample Application:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/spring-projects/spring-petclinic.git\ncd spring-petclinic\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"3",children:["\n",(0,s.jsxs)(n.li,{children:["Mirror the Spring PetClinic Sample Application to your ",(0,s.jsx)(n.code,{children:"petclinc"})," repo:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"git push --mirror https://gitea.//petclinic.git\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Go to ",(0,s.jsx)(n.code,{children:"Builds"})," in the left menu and click ",(0,s.jsx)(n.code,{children:"Create Build"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Fill in the Build name ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Choose ",(0,s.jsx)(n.code,{children:"Buildpacks"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Fill in the ",(0,s.jsx)(n.code,{children:"Repo URL"})," with the ",(0,s.jsx)(n.code,{children:"petclinic"})," Gitea repo you created."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"create-a-workload-from-the-developer-catalog",children:"Create a workload from the developer catalog"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the list of Builds and add the repository of the ",(0,s.jsx)(n.code,{children:"petclinc"})," build to your clipboard. Remember that the tag is latest."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Go to ",(0,s.jsx)(n.code,{children:"Workloads"})," in the left menu and click on ",(0,s.jsx)(n.code,{children:"Create Workload"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.code,{children:"Quickstart-K8s-Deployment-Otel"})," from the catalog."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add the Name ",(0,s.jsx)(n.code,{children:"petclinic"})," for the workload."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Leave the ",(0,s.jsx)(n.code,{children:"Auto image updater"})," to ",(0,s.jsx)(n.code,{children:"Disabled"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the workload ",(0,s.jsx)(n.code,{children:"values"}),", change the following parameters:"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"image:\n repository: \n tag: latest\n"})}),"\n",(0,s.jsx)(n.p,{children:"Because we're deploying a Java application here, maybe also change the resources:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"resources:\n limits:\n cpu: 500m\n memory: 1Gi\n requests:\n cpu: 300m\n memory: 256Mi\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"6",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click on ",(0,s.jsx)(n.code,{children:"Deploy Changes"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"expose-the-service",children:"Expose the service"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the left menu panel under click ",(0,s.jsx)(n.code,{children:"Services"})," then click on ",(0,s.jsx)(n.code,{children:"Create Service"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select the ",(0,s.jsx)(n.code,{children:"petclinic"})," service."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Under ",(0,s.jsx)(n.code,{children:"Exposure Ingress"}),", select ",(0,s.jsx)(n.code,{children:"Ingress"})," and use the default configuration."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Deploy Changes"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"see-traces",children:"See traces"}),"\n",(0,s.jsxs)(n.p,{children:["To be able to see traces, we'll first need to generate some requests. Click on the URL of the ",(0,s.jsx)(n.code,{children:"petclinic"})," service and generate some requests."]}),"\n",(0,s.jsxs)(n.p,{children:["To see traces, you'll first need to find a ",(0,s.jsx)(n.code,{children:"TraceID"})," of a trace. Go to ",(0,s.jsx)(n.code,{children:"Apps"})," in the left menu and then click op ",(0,s.jsx)(n.code,{children:"Loki"}),". Select the label ",(0,s.jsx)(n.code,{children:"App"})," and select value ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Click on a log entry of a request. Note that the requests are logged by the Istio Envoy proxy. You will now see a link to the full trace in Grafana Tempo. Click on it."}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If you don't see any traces, then check and see if the pod runs the ",(0,s.jsx)(n.code,{children:"ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java:1.26.0"})," container. Sometimes the pod starts before the ",(0,s.jsx)(n.code,{children:"Instrumentation"})," resource has been created. If this is the case, restart the Pod."]})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Team apps",src:i(559).Z+"",width:"3848",height:"2486"})}),"\n",(0,s.jsx)(n.p,{children:"And when you click on the Node graph, you\u2019ll see the complete flow:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Team apps",src:i(9159).Z+"",width:"3848",height:"2250"})})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},9159:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/traces-loki-nodes-38816351351dd20a779500a0c943ef79.png"},559:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/traces-loki-7acf9107b085b83d75001a9138a0e4bb.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>r});var s=i(7294);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ef6f599.c4798feb.js b/assets/js/6ef6f599.c4798feb.js new file mode 100644 index 000000000..e83b74c4c --- /dev/null +++ b/assets/js/6ef6f599.c4798feb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkredkubes_github_io=self.webpackChunkredkubes_github_io||[]).push([[1164],{6041:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var s=i(5893),l=i(1151);const t={slug:"use-otel",title:"OpenTelemetry",sidebar_label:"Use OpenTelemery"},r=void 0,c={id:"get-started/labs/use-otel",title:"OpenTelemetry",description:"In order to make a system observable, it must be instrumented. Language specific implementation of OpenTelemetry provides a way to instrument your application without touching your source code. In this lab we're going to instrument a Java application.",source:"@site/docs/get-started/labs/use-otel.md",sourceDirName:"get-started/labs",slug:"/get-started/labs/use-otel",permalink:"/docs/get-started/labs/use-otel",draft:!1,unlisted:!1,editUrl:"https://github.com/linode/linode.github.io/tree/main/docs/get-started/labs/use-otel.md",tags:[],version:"current",frontMatter:{slug:"use-otel",title:"OpenTelemetry",sidebar_label:"Use OpenTelemery"},sidebar:"mainSidebar",previous:{title:"Create Network Policies",permalink:"/docs/get-started/labs/create-netpols"},next:{title:"Canary Deployment",permalink:"/docs/get-started/labs/canary-deployment"}},o={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Build an image from source code",id:"build-an-image-from-source-code",level:2},{value:"Create a workload from the developer catalog",id:"create-a-workload-from-the-developer-catalog",level:2},{value:"Expose the service",id:"expose-the-service",level:2},{value:"See traces",id:"see-traces",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"In order to make a system observable, it must be instrumented. Language specific implementation of OpenTelemetry provides a way to instrument your application without touching your source code. In this lab we're going to instrument a Java application."}),"\n",(0,s.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(n.p,{children:"Make sure the following Apps are enabled:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Tempo"})," on Platform"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Otel"})," on Platform"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Loki"})," on Platform"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"Grafana"})," for the Team"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Enable tracing for ",(0,s.jsx)(n.code,{children:"Istio"})," and ",(0,s.jsx)(n.code,{children:"ingress-nginx-platform"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Go to ",(0,s.jsx)(n.code,{children:"Apps"})]}),"\n",(0,s.jsxs)(n.li,{children:["Click on ",(0,s.jsx)(n.code,{children:"Istio"})]}),"\n",(0,s.jsx)(n.li,{children:"Click on the configuration icon"}),"\n",(0,s.jsxs)(n.li,{children:["Click on the ",(0,s.jsx)(n.code,{children:"Values"})," tab"]}),"\n",(0,s.jsxs)(n.li,{children:["In the values click ",(0,s.jsx)(n.code,{children:"Edit"})," and set the following values"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'tracing:\n enabled: true\n samplingRatio: "100"\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["Setting the ",(0,s.jsx)(n.code,{children:"samplingRatio"})," to ",(0,s.jsx)(n.code,{children:"100"})," is only done for this lab to make sure all traces are sampled. In a production environment the ratio would normally be set to ",(0,s.jsx)(n.code,{children:"0.01"}),"."]})}),"\n",(0,s.jsxs)(n.ol,{start:"6",children:["\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"})]}),"\n",(0,s.jsxs)(n.li,{children:["Repeat step 2 to 6 for the ",(0,s.jsx)(n.code,{children:"ingress-nginx-platform"})," app"]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.code,{children:"Deploy Changes"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"build-an-image-from-source-code",children:"Build an image from source code"}),"\n",(0,s.jsxs)(n.p,{children:["For this lab we're going to use the ",(0,s.jsx)(n.a,{href:"https://github.com/spring-projects/spring-petclinic",children:"Spring PetClinic Sample Application"}),". Follow these steps to build an image from source code:"]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"Using a Gitea repository is not required. You can also build using public repositories."})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a new repo called ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Clone the Spring PetClinic Sample Application:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/spring-projects/spring-petclinic.git\ncd spring-petclinic\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"3",children:["\n",(0,s.jsxs)(n.li,{children:["Mirror the Spring PetClinic Sample Application to your ",(0,s.jsx)(n.code,{children:"petclinc"})," repo:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"git push --mirror https://gitea.//petclinic.git\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Go to ",(0,s.jsx)(n.code,{children:"Builds"})," in the left menu and click ",(0,s.jsx)(n.code,{children:"Create Build"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Fill in the Build name ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Choose ",(0,s.jsx)(n.code,{children:"Buildpacks"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Fill in the ",(0,s.jsx)(n.code,{children:"Repo URL"})," with the ",(0,s.jsx)(n.code,{children:"petclinic"})," Gitea repo you created."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"create-a-workload-from-the-developer-catalog",children:"Create a workload from the developer catalog"}),"\n",(0,s.jsxs)(n.p,{children:["Go to the list of Builds and add the repository of the ",(0,s.jsx)(n.code,{children:"petclinc"})," build to your clipboard. Remember that the tag is latest."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Go to ",(0,s.jsx)(n.code,{children:"Workloads"})," in the left menu and click on ",(0,s.jsx)(n.code,{children:"Create Workload"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.code,{children:"Quickstart-K8s-Deployment-Otel"})," from the catalog."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add the Name ",(0,s.jsx)(n.code,{children:"petclinic"})," for the workload."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Leave the ",(0,s.jsx)(n.code,{children:"Auto image updater"})," to ",(0,s.jsx)(n.code,{children:"Disabled"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the workload ",(0,s.jsx)(n.code,{children:"values"}),", change the following parameters:"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"image:\n repository: \n tag: latest\n"})}),"\n",(0,s.jsx)(n.p,{children:"Because we're deploying a Java application here, maybe also change the resources:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"resources:\n limits:\n cpu: 500m\n memory: 1Gi\n requests:\n cpu: 300m\n memory: 256Mi\n"})}),"\n",(0,s.jsxs)(n.ol,{start:"6",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click on ",(0,s.jsx)(n.code,{children:"Deploy Changes"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"expose-the-service",children:"Expose the service"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the left menu panel under click ",(0,s.jsx)(n.code,{children:"Services"})," then click on ",(0,s.jsx)(n.code,{children:"Create Service"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select the ",(0,s.jsx)(n.code,{children:"petclinic"})," service."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Under ",(0,s.jsx)(n.code,{children:"Exposure Ingress"}),", select ",(0,s.jsx)(n.code,{children:"Ingress"})," and use the default configuration."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Submit"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.code,{children:"Deploy Changes"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"see-traces",children:"See traces"}),"\n",(0,s.jsxs)(n.p,{children:["To be able to see traces, we'll first need to generate some requests. Click on the URL of the ",(0,s.jsx)(n.code,{children:"petclinic"})," service and generate some requests."]}),"\n",(0,s.jsxs)(n.p,{children:["To see traces, you'll first need to find a ",(0,s.jsx)(n.code,{children:"TraceID"})," of a trace. Go to ",(0,s.jsx)(n.code,{children:"Apps"})," in the left menu and then click op ",(0,s.jsx)(n.code,{children:"Loki"}),". Select the label ",(0,s.jsx)(n.code,{children:"App"})," and select value ",(0,s.jsx)(n.code,{children:"petclinic"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Click on a log entry of a request. Note that the requests are logged by the Istio Envoy proxy. You will now see a link to the full trace in Grafana Tempo. Click on it."}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If you don't see any traces, then check and see if the pod runs the ",(0,s.jsx)(n.code,{children:"ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java:1.26.0"})," container. Sometimes the pod starts before the ",(0,s.jsx)(n.code,{children:"Instrumentation"})," resource has been created. If this is the case, restart the Pod."]})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Team apps",src:i(559).Z+"",width:"3848",height:"2486"})}),"\n",(0,s.jsx)(n.p,{children:"And when you click on the Node graph, you\u2019ll see the complete flow:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Team apps",src:i(9159).Z+"",width:"3848",height:"2250"})})]})}function h(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},9159:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/traces-loki-nodes-38816351351dd20a779500a0c943ef79.png"},559:(e,n,i)=>{i.d(n,{Z:()=>s});const s=i.p+"assets/images/traces-loki-7acf9107b085b83d75001a9138a0e4bb.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>r});var s=i(7294);const l={},t=s.createContext(l);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.3d7374db.js b/assets/js/runtime~main.843a192e.js similarity index 99% rename from assets/js/runtime~main.3d7374db.js rename to assets/js/runtime~main.843a192e.js index 4f152713d..1a472c6be 100644 --- a/assets/js/runtime~main.3d7374db.js +++ b/assets/js/runtime~main.843a192e.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({48:"98c047c6",53:"935f2afb",117:"62e5798c",256:"bd8a3d8f",263:"8dc82fcd",411:"80cc8fc2",439:"db2fd2f7",443:"9824b3d7",537:"c9644b78",634:"0d519d5d",670:"31647fbf",725:"fd458deb",767:"df2434c5",912:"1d911987",965:"d53aaf7f",1020:"ffd636c4",1113:"4380e181",1164:"6ef6f599",1195:"1830c2e3",1241:"e2cc03cb",1254:"443e3a65",1313:"bf0e2243",1390:"96d3f3ac",1391:"9cb4274e",1470:"f9528352",1515:"f34c6cc5",1573:"a722ee7a",1576:"c3a9c637",1591:"09735fc0",1701:"7d144271",1730:"69fd0b9a",1854:"be94a9c8",1872:"c42226db",1902:"8ef33b61",1913:"c9ff9b08",2020:"7f5d7fca",2036:"54cc2d4c",2098:"00210a32",2115:"abc5e328",2144:"aa3203ff",2237:"1f668492",2280:"5ce65c80",2370:"afd24866",2430:"188da18d",2477:"80f670fe",2615:"d8a040d1",2668:"d9893b92",2704:"10959509",2717:"397109c3",2722:"14bc3799",2780:"3c110fea",2930:"2b4f9f78",3039:"903141a5",3063:"cba11a7e",3126:"17a7c5fe",3237:"1df93b7f",3256:"b3921f18",3272:"052260a8",3418:"3fd50427",3544:"cd151fd5",3576:"13689ae4",3599:"80b07506",3611:"d1409995",3635:"1f918bbd",3942:"5f4e8093",4011:"feda9f98",4019:"090174e7",4234:"1a23fb22",4247:"43db5d1f",4321:"6d553b82",4368:"a94703ab",4385:"8afa6453",4473:"1d3542c3",4559:"5c5eecab",4576:"612b9100",4584:"8b7dda8f",4655:"2a3fc902",4717:"d76c6a89",4722:"e7ee1f4e",4778:"399357cc",4791:"a3cca685",4986:"219ad9fa",5018:"871ddaf7",5033:"ca4242f5",5112:"0fafd5e8",5195:"3379d6c0",5290:"98242336",5616:"c5c74bfd",5649:"c730f480",5720:"646a49d4",5775:"46a4fdf9",5786:"2e429803",5824:"81e06d7e",5827:"20b057c1",5920:"b04270fa",5935:"2f447487",5940:"385dd0a0",5996:"9a6fbba2",6096:"0c3fdeeb",6128:"83b70ecd",6299:"48f8b5b9",6306:"e65ca800",6535:"9184e37b",6576:"bcbdbf75",6781:"6340fb34",6866:"a6a14297",6888:"af9df136",6907:"f4935766",6932:"5bcba466",6935:"a1e5de72",7159:"d1254c3d",7282:"1dcded0d",7360:"b4e198bf",7386:"28c78037",7444:"af8b4e82",7578:"1db000ad",7638:"c0f9889b",7674:"270f6692",7702:"7e13be3f",7787:"d248c736",7878:"386e030b",7896:"9ed16ae1",7918:"17896441",7920:"1a4e3797",7973:"46be4bcd",7984:"a47e2810",8028:"c4d36760",8036:"490175b0",8129:"30f4d83c",8344:"1afc8419",8383:"246b758f",8392:"0be2dc55",8506:"9899ea6d",8518:"a7bd4aaa",8607:"2df7e88d",8696:"541249eb",8760:"88cad7e1",8852:"9b2db8ea",8897:"af477ebb",9011:"942f06e2",9063:"11153061",9091:"6ebb893e",9153:"ed3faf6d",9216:"5cb822a3",9237:"bde17074",9661:"5e95c892",9683:"7ea98ab3",9717:"2548183b",9742:"c3394322",9832:"0097d0fa"}[e]||e)+"."+{48:"aef67979",53:"3f637cc0",117:"ef9d9c9f",256:"d210cd9c",263:"91bb82e1",411:"c867d2c5",439:"b28f5f13",443:"d8fdf293",537:"899eeb3a",634:"5210a312",670:"8ff72611",725:"bd5ea6ac",767:"4ebfc7f2",912:"8e58df70",965:"0767a5b4",1020:"9fc69dd5",1113:"b81e78ce",1164:"c0449fec",1195:"d70a4c78",1241:"579eebb9",1254:"dd9847a1",1313:"272fb484",1390:"a3b90106",1391:"5c063f04",1426:"707aef92",1470:"20ca772b",1515:"43eaeb40",1573:"b2cc64d6",1576:"d0cdcfe6",1591:"5416ccfd",1701:"f7277fb4",1730:"b480ea2a",1772:"a30dfd8b",1854:"975b3508",1872:"202182e1",1902:"f1d400a3",1913:"ba042c39",2020:"1fb43075",2036:"f967adbc",2098:"b72a3ef6",2115:"a043833c",2144:"aeee67d9",2237:"b7ea2058",2280:"8971d689",2370:"f1feb680",2430:"1f928026",2477:"c1abcbab",2615:"42c42e4d",2668:"bc6abf89",2704:"432c28a3",2717:"9f850d24",2722:"1b1256ea",2780:"bdf70ef2",2930:"25eb8b1a",3039:"0b6cc2e8",3063:"b991afbe",3126:"0b3a791f",3237:"d01532c1",3256:"4e895d26",3272:"f40f2de8",3418:"a5098121",3544:"29a2287a",3576:"cd96fab9",3599:"3a787cd1",3611:"b01db5bc",3635:"adcf53f4",3942:"2dabe2c9",4011:"a9a61aa3",4019:"573e5eca",4234:"68b4c56c",4247:"679e6dbe",4321:"3745d4a5",4368:"e58383c9",4385:"269f12ee",4473:"bcc95119",4559:"a45fe330",4576:"21c1299d",4584:"b3cf6557",4655:"92856cb7",4717:"fe41aa5b",4722:"eaedc901",4778:"99555cf3",4791:"314bc0e3",4986:"69fb53e7",5018:"0c8e3138",5033:"a9676278",5112:"8ead4005",5195:"83026376",5290:"7ef7031f",5616:"c67da531",5649:"44eb2855",5720:"f6beac8d",5775:"f93a791b",5786:"3f62bcb1",5824:"f664eaae",5827:"6d9de8bf",5920:"7329cd3a",5935:"17b2870e",5940:"c01b015c",5996:"e0241dcd",6096:"39519fb2",6128:"f5b32dda",6299:"970aeb66",6306:"ade2adf7",6535:"68f1898f",6576:"dc287203",6781:"8501f322",6866:"4c2e22cc",6888:"2b585b44",6907:"ad258e6f",6932:"a42a6709",6935:"837a5e5f",6945:"bfc572ea",7159:"67d03583",7282:"c7ef1626",7360:"e4d6eabc",7386:"ff0b2b0a",7444:"494e5744",7578:"a8f68b7a",7638:"2144e89a",7674:"5c2cdf73",7702:"0e7d4543",7787:"85e2335d",7878:"19a189b5",7896:"4273a32b",7918:"723e23a3",7920:"3ce85a9e",7973:"61fa8068",7984:"0896103b",8028:"e67117c5",8036:"a62c642b",8129:"26b357f9",8344:"3047bf78",8383:"51c3866a",8392:"9080d564",8506:"927b4ac7",8518:"e964aaea",8607:"25958a3b",8696:"89c82b02",8760:"4124a815",8852:"b4bde40b",8894:"ced69189",8897:"d3937ba5",9011:"4cbbdf71",9063:"1e2d95c4",9091:"98b73abc",9153:"90d2345f",9216:"b950257a",9237:"b41b1f82",9661:"ad7630aa",9683:"6a7963f0",9717:"90e507a6",9742:"fb014f32",9832:"dae2702e"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="redkubes-github-io:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={10959509:"2704",11153061:"9063",17896441:"7918",98242336:"5290","98c047c6":"48","935f2afb":"53","62e5798c":"117",bd8a3d8f:"256","8dc82fcd":"263","80cc8fc2":"411",db2fd2f7:"439","9824b3d7":"443",c9644b78:"537","0d519d5d":"634","31647fbf":"670",fd458deb:"725",df2434c5:"767","1d911987":"912",d53aaf7f:"965",ffd636c4:"1020","4380e181":"1113","6ef6f599":"1164","1830c2e3":"1195",e2cc03cb:"1241","443e3a65":"1254",bf0e2243:"1313","96d3f3ac":"1390","9cb4274e":"1391",f9528352:"1470",f34c6cc5:"1515",a722ee7a:"1573",c3a9c637:"1576","09735fc0":"1591","7d144271":"1701","69fd0b9a":"1730",be94a9c8:"1854",c42226db:"1872","8ef33b61":"1902",c9ff9b08:"1913","7f5d7fca":"2020","54cc2d4c":"2036","00210a32":"2098",abc5e328:"2115",aa3203ff:"2144","1f668492":"2237","5ce65c80":"2280",afd24866:"2370","188da18d":"2430","80f670fe":"2477",d8a040d1:"2615",d9893b92:"2668","397109c3":"2717","14bc3799":"2722","3c110fea":"2780","2b4f9f78":"2930","903141a5":"3039",cba11a7e:"3063","17a7c5fe":"3126","1df93b7f":"3237",b3921f18:"3256","052260a8":"3272","3fd50427":"3418",cd151fd5:"3544","13689ae4":"3576","80b07506":"3599",d1409995:"3611","1f918bbd":"3635","5f4e8093":"3942",feda9f98:"4011","090174e7":"4019","1a23fb22":"4234","43db5d1f":"4247","6d553b82":"4321",a94703ab:"4368","8afa6453":"4385","1d3542c3":"4473","5c5eecab":"4559","612b9100":"4576","8b7dda8f":"4584","2a3fc902":"4655",d76c6a89:"4717",e7ee1f4e:"4722","399357cc":"4778",a3cca685:"4791","219ad9fa":"4986","871ddaf7":"5018",ca4242f5:"5033","0fafd5e8":"5112","3379d6c0":"5195",c5c74bfd:"5616",c730f480:"5649","646a49d4":"5720","46a4fdf9":"5775","2e429803":"5786","81e06d7e":"5824","20b057c1":"5827",b04270fa:"5920","2f447487":"5935","385dd0a0":"5940","9a6fbba2":"5996","0c3fdeeb":"6096","83b70ecd":"6128","48f8b5b9":"6299",e65ca800:"6306","9184e37b":"6535",bcbdbf75:"6576","6340fb34":"6781",a6a14297:"6866",af9df136:"6888",f4935766:"6907","5bcba466":"6932",a1e5de72:"6935",d1254c3d:"7159","1dcded0d":"7282",b4e198bf:"7360","28c78037":"7386",af8b4e82:"7444","1db000ad":"7578",c0f9889b:"7638","270f6692":"7674","7e13be3f":"7702",d248c736:"7787","386e030b":"7878","9ed16ae1":"7896","1a4e3797":"7920","46be4bcd":"7973",a47e2810:"7984",c4d36760:"8028","490175b0":"8036","30f4d83c":"8129","1afc8419":"8344","246b758f":"8383","0be2dc55":"8392","9899ea6d":"8506",a7bd4aaa:"8518","2df7e88d":"8607","541249eb":"8696","88cad7e1":"8760","9b2db8ea":"8852",af477ebb:"8897","942f06e2":"9011","6ebb893e":"9091",ed3faf6d:"9153","5cb822a3":"9216",bde17074:"9237","5e95c892":"9661","7ea98ab3":"9683","2548183b":"9717",c3394322:"9742","0097d0fa":"9832"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({48:"98c047c6",53:"935f2afb",117:"62e5798c",256:"bd8a3d8f",263:"8dc82fcd",411:"80cc8fc2",439:"db2fd2f7",443:"9824b3d7",537:"c9644b78",634:"0d519d5d",670:"31647fbf",725:"fd458deb",767:"df2434c5",912:"1d911987",965:"d53aaf7f",1020:"ffd636c4",1113:"4380e181",1164:"6ef6f599",1195:"1830c2e3",1241:"e2cc03cb",1254:"443e3a65",1313:"bf0e2243",1390:"96d3f3ac",1391:"9cb4274e",1470:"f9528352",1515:"f34c6cc5",1573:"a722ee7a",1576:"c3a9c637",1591:"09735fc0",1701:"7d144271",1730:"69fd0b9a",1854:"be94a9c8",1872:"c42226db",1902:"8ef33b61",1913:"c9ff9b08",2020:"7f5d7fca",2036:"54cc2d4c",2098:"00210a32",2115:"abc5e328",2144:"aa3203ff",2237:"1f668492",2280:"5ce65c80",2370:"afd24866",2430:"188da18d",2477:"80f670fe",2615:"d8a040d1",2668:"d9893b92",2704:"10959509",2717:"397109c3",2722:"14bc3799",2780:"3c110fea",2930:"2b4f9f78",3039:"903141a5",3063:"cba11a7e",3126:"17a7c5fe",3237:"1df93b7f",3256:"b3921f18",3272:"052260a8",3418:"3fd50427",3544:"cd151fd5",3576:"13689ae4",3599:"80b07506",3611:"d1409995",3635:"1f918bbd",3942:"5f4e8093",4011:"feda9f98",4019:"090174e7",4234:"1a23fb22",4247:"43db5d1f",4321:"6d553b82",4368:"a94703ab",4385:"8afa6453",4473:"1d3542c3",4559:"5c5eecab",4576:"612b9100",4584:"8b7dda8f",4655:"2a3fc902",4717:"d76c6a89",4722:"e7ee1f4e",4778:"399357cc",4791:"a3cca685",4986:"219ad9fa",5018:"871ddaf7",5033:"ca4242f5",5112:"0fafd5e8",5195:"3379d6c0",5290:"98242336",5616:"c5c74bfd",5649:"c730f480",5720:"646a49d4",5775:"46a4fdf9",5786:"2e429803",5824:"81e06d7e",5827:"20b057c1",5920:"b04270fa",5935:"2f447487",5940:"385dd0a0",5996:"9a6fbba2",6096:"0c3fdeeb",6128:"83b70ecd",6299:"48f8b5b9",6306:"e65ca800",6535:"9184e37b",6576:"bcbdbf75",6781:"6340fb34",6866:"a6a14297",6888:"af9df136",6907:"f4935766",6932:"5bcba466",6935:"a1e5de72",7159:"d1254c3d",7282:"1dcded0d",7360:"b4e198bf",7386:"28c78037",7444:"af8b4e82",7578:"1db000ad",7638:"c0f9889b",7674:"270f6692",7702:"7e13be3f",7787:"d248c736",7878:"386e030b",7896:"9ed16ae1",7918:"17896441",7920:"1a4e3797",7973:"46be4bcd",7984:"a47e2810",8028:"c4d36760",8036:"490175b0",8129:"30f4d83c",8344:"1afc8419",8383:"246b758f",8392:"0be2dc55",8506:"9899ea6d",8518:"a7bd4aaa",8607:"2df7e88d",8696:"541249eb",8760:"88cad7e1",8852:"9b2db8ea",8897:"af477ebb",9011:"942f06e2",9063:"11153061",9091:"6ebb893e",9153:"ed3faf6d",9216:"5cb822a3",9237:"bde17074",9661:"5e95c892",9683:"7ea98ab3",9717:"2548183b",9742:"c3394322",9832:"0097d0fa"}[e]||e)+"."+{48:"aef67979",53:"3f637cc0",117:"ef9d9c9f",256:"d210cd9c",263:"91bb82e1",411:"c867d2c5",439:"b28f5f13",443:"d8fdf293",537:"899eeb3a",634:"5210a312",670:"8ff72611",725:"bd5ea6ac",767:"4ebfc7f2",912:"8e58df70",965:"0767a5b4",1020:"9fc69dd5",1113:"b81e78ce",1164:"c4798feb",1195:"d70a4c78",1241:"579eebb9",1254:"dd9847a1",1313:"272fb484",1390:"a3b90106",1391:"5c063f04",1426:"707aef92",1470:"20ca772b",1515:"43eaeb40",1573:"b2cc64d6",1576:"d0cdcfe6",1591:"5416ccfd",1701:"f7277fb4",1730:"b480ea2a",1772:"a30dfd8b",1854:"975b3508",1872:"202182e1",1902:"f1d400a3",1913:"ba042c39",2020:"1fb43075",2036:"f967adbc",2098:"b72a3ef6",2115:"a043833c",2144:"aeee67d9",2237:"b7ea2058",2280:"8971d689",2370:"f1feb680",2430:"1f928026",2477:"c1abcbab",2615:"42c42e4d",2668:"bc6abf89",2704:"432c28a3",2717:"9f850d24",2722:"1b1256ea",2780:"bdf70ef2",2930:"25eb8b1a",3039:"0b6cc2e8",3063:"b991afbe",3126:"0b3a791f",3237:"d01532c1",3256:"4e895d26",3272:"f40f2de8",3418:"a5098121",3544:"29a2287a",3576:"cd96fab9",3599:"3a787cd1",3611:"b01db5bc",3635:"adcf53f4",3942:"2dabe2c9",4011:"a9a61aa3",4019:"573e5eca",4234:"68b4c56c",4247:"679e6dbe",4321:"3745d4a5",4368:"e58383c9",4385:"269f12ee",4473:"bcc95119",4559:"a45fe330",4576:"21c1299d",4584:"b3cf6557",4655:"92856cb7",4717:"fe41aa5b",4722:"eaedc901",4778:"99555cf3",4791:"314bc0e3",4986:"69fb53e7",5018:"0c8e3138",5033:"a9676278",5112:"8ead4005",5195:"83026376",5290:"7ef7031f",5616:"c67da531",5649:"44eb2855",5720:"f6beac8d",5775:"f93a791b",5786:"3f62bcb1",5824:"f664eaae",5827:"6d9de8bf",5920:"7329cd3a",5935:"17b2870e",5940:"c01b015c",5996:"e0241dcd",6096:"39519fb2",6128:"f5b32dda",6299:"970aeb66",6306:"ade2adf7",6535:"68f1898f",6576:"dc287203",6781:"8501f322",6866:"4c2e22cc",6888:"2b585b44",6907:"ad258e6f",6932:"a42a6709",6935:"837a5e5f",6945:"bfc572ea",7159:"67d03583",7282:"c7ef1626",7360:"e4d6eabc",7386:"ff0b2b0a",7444:"494e5744",7578:"a8f68b7a",7638:"2144e89a",7674:"5c2cdf73",7702:"0e7d4543",7787:"85e2335d",7878:"19a189b5",7896:"4273a32b",7918:"723e23a3",7920:"3ce85a9e",7973:"61fa8068",7984:"0896103b",8028:"e67117c5",8036:"a62c642b",8129:"26b357f9",8344:"3047bf78",8383:"51c3866a",8392:"9080d564",8506:"927b4ac7",8518:"e964aaea",8607:"25958a3b",8696:"89c82b02",8760:"4124a815",8852:"b4bde40b",8894:"ced69189",8897:"d3937ba5",9011:"4cbbdf71",9063:"1e2d95c4",9091:"98b73abc",9153:"90d2345f",9216:"b950257a",9237:"b41b1f82",9661:"ad7630aa",9683:"6a7963f0",9717:"90e507a6",9742:"fb014f32",9832:"dae2702e"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="redkubes-github-io:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={10959509:"2704",11153061:"9063",17896441:"7918",98242336:"5290","98c047c6":"48","935f2afb":"53","62e5798c":"117",bd8a3d8f:"256","8dc82fcd":"263","80cc8fc2":"411",db2fd2f7:"439","9824b3d7":"443",c9644b78:"537","0d519d5d":"634","31647fbf":"670",fd458deb:"725",df2434c5:"767","1d911987":"912",d53aaf7f:"965",ffd636c4:"1020","4380e181":"1113","6ef6f599":"1164","1830c2e3":"1195",e2cc03cb:"1241","443e3a65":"1254",bf0e2243:"1313","96d3f3ac":"1390","9cb4274e":"1391",f9528352:"1470",f34c6cc5:"1515",a722ee7a:"1573",c3a9c637:"1576","09735fc0":"1591","7d144271":"1701","69fd0b9a":"1730",be94a9c8:"1854",c42226db:"1872","8ef33b61":"1902",c9ff9b08:"1913","7f5d7fca":"2020","54cc2d4c":"2036","00210a32":"2098",abc5e328:"2115",aa3203ff:"2144","1f668492":"2237","5ce65c80":"2280",afd24866:"2370","188da18d":"2430","80f670fe":"2477",d8a040d1:"2615",d9893b92:"2668","397109c3":"2717","14bc3799":"2722","3c110fea":"2780","2b4f9f78":"2930","903141a5":"3039",cba11a7e:"3063","17a7c5fe":"3126","1df93b7f":"3237",b3921f18:"3256","052260a8":"3272","3fd50427":"3418",cd151fd5:"3544","13689ae4":"3576","80b07506":"3599",d1409995:"3611","1f918bbd":"3635","5f4e8093":"3942",feda9f98:"4011","090174e7":"4019","1a23fb22":"4234","43db5d1f":"4247","6d553b82":"4321",a94703ab:"4368","8afa6453":"4385","1d3542c3":"4473","5c5eecab":"4559","612b9100":"4576","8b7dda8f":"4584","2a3fc902":"4655",d76c6a89:"4717",e7ee1f4e:"4722","399357cc":"4778",a3cca685:"4791","219ad9fa":"4986","871ddaf7":"5018",ca4242f5:"5033","0fafd5e8":"5112","3379d6c0":"5195",c5c74bfd:"5616",c730f480:"5649","646a49d4":"5720","46a4fdf9":"5775","2e429803":"5786","81e06d7e":"5824","20b057c1":"5827",b04270fa:"5920","2f447487":"5935","385dd0a0":"5940","9a6fbba2":"5996","0c3fdeeb":"6096","83b70ecd":"6128","48f8b5b9":"6299",e65ca800:"6306","9184e37b":"6535",bcbdbf75:"6576","6340fb34":"6781",a6a14297:"6866",af9df136:"6888",f4935766:"6907","5bcba466":"6932",a1e5de72:"6935",d1254c3d:"7159","1dcded0d":"7282",b4e198bf:"7360","28c78037":"7386",af8b4e82:"7444","1db000ad":"7578",c0f9889b:"7638","270f6692":"7674","7e13be3f":"7702",d248c736:"7787","386e030b":"7878","9ed16ae1":"7896","1a4e3797":"7920","46be4bcd":"7973",a47e2810:"7984",c4d36760:"8028","490175b0":"8036","30f4d83c":"8129","1afc8419":"8344","246b758f":"8383","0be2dc55":"8392","9899ea6d":"8506",a7bd4aaa:"8518","2df7e88d":"8607","541249eb":"8696","88cad7e1":"8760","9b2db8ea":"8852",af477ebb:"8897","942f06e2":"9011","6ebb893e":"9091",ed3faf6d:"9153","5cb822a3":"9216",bde17074:"9237","5e95c892":"9661","7ea98ab3":"9683","2548183b":"9717",c3394322:"9742","0097d0fa":"9832"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n