mirror of
https://github.com/openziti/zrok.git
synced 2025-02-16 02:10:47 +01:00
1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
|
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3588],{3998:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"guides/self-hosting/metrics-and-limits/configuring-metrics","title":"Configuring Metrics","description":"A fully configured, production-scale zrok service instance looks like this:","source":"@site/../docs/guides/self-hosting/metrics-and-limits/configuring-metrics.md","sourceDirName":"guides/self-hosting/metrics-and-limits","slug":"/guides/self-hosting/metrics-and-limits/configuring-metrics","permalink":"/docs/guides/self-hosting/metrics-and-limits/configuring-metrics","draft":false,"unlisted":false,"editUrl":"https://github.com/openziti/zrok/blob/main/docs/../docs/guides/self-hosting/metrics-and-limits/configuring-metrics.md","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"sidebar_position":20},"sidebar":"tutorialSidebar","previous":{"title":"Metrics and Limits","permalink":"/docs/category/metrics-and-limits"},"next":{"title":"Configuring Limits","permalink":"/docs/guides/self-hosting/metrics-and-limits/configuring-limits"}}');var r=i(4848),o=i(8453);const s={sidebar_position:20},c="Configuring Metrics",l={},a=[{value:"Configuring the OpenZiti Controller",id:"configuring-the-openziti-controller",level:2},{value:"Configuring the zrok Metrics Bridge",id:"configuring-the-zrok-metrics-bridge",level:2},{value:"RabbitMQ",id:"rabbitmq",level:3},{value:"Configuring zrok Metrics",id:"configuring-zrok-metrics",level:2},{value:"Testing Metrics",id:"testing-metrics",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"configuring-metrics",children:"Configuring Metrics"})}),"\n",(0,r.jsxs)(n.p,{children:["A fully configured, production-scale ",(0,r.jsx)(n.code,{children:"zrok"})," service instance looks like this:"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"zrok Metrics Architecture",src:i(4923).A+"",width:"381",height:"492"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"zrok"})," metrics builds on top of the ",(0,r.jsx)(n.code,{children:"fabric.usage"})," event type from OpenZiti. The OpenZiti controller has a number of way to emit events. The ",(0,r.jsx)(n.code,{children:"zrok"})," controller has several ways to consume ",(0,r.jsx)(n.code,{children:"fabric.usage"})," events. Smaller installations could be configured in these ways:"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"zrok simplified metrics architecture",src:i(7292).A+"",width:"522",height:"322"})}),"\n",(0,r.jsxs)(n.p,{children:["Environments that horizontally scale the ",(0,r.jsx)(n.code,{children:"zrok"}),' control plane with multiple controllers should use an AMQP-based queue to "fan out" the metrics workload across the entire control plane. Simpler installations that use a single ',(0,r.jsx)(n.code,{children:"zrok"})," controller can collect ",(0,r.jsx)(n.code,{children:"fabric.usage"}),' events from the OpenZiti controller by "tailing" the events log file, or collecting them from the OpenZiti controller\'s websocket implementation.']}),"\n",(0,r.jsx)(n.h2,{id:"configuring-the-openziti-controller",children:"Configuring the OpenZiti Controller"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["This requires a version of OpenZiti with a ",(0,r.jsx)(n.code,{children:"fabric"})," dependency of ",(0,r.jsx)(n.code,{children:"v0.22.52"})," or newer, which is satisfed by the ",(0,r.jsx)(n.code,{children:"v0.27.6"})," release of OpenZiti Controller."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Emitting ",(0,r.jsx)(n.code,{children:"fabric.usage"})," events to a file is currently the most reliable mechanism to capture usage events into ",(0,r.jsx)(n.code,{children:"zrok"}),". We're going to configure the OpenZiti controller to append ",(0,r.jsx)(n.code,{children:"fabric.u
|