mirror of
https://github.com/katanemo/plano.git
synced 2026-05-02 12:22:43 +02:00
deploy: 22f332f62d
This commit is contained in:
parent
3203240f7f
commit
75db157d92
33 changed files with 137 additions and 33 deletions
|
|
@ -229,6 +229,54 @@ are some sample configuration files for both, respectively.</p>
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="brightstaff-metrics">
|
||||
<h2>Brightstaff metrics<a @click.prevent="window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)" aria-label="Copy link to this element" class="headerlink" data-tooltip="Copy link to this element" href="#brightstaff-metrics" x-intersect.margin.0%.0%.-70%.0%="activeSection = '#brightstaff-metrics'"><svg height="1em" viewbox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path></svg></a></h2>
|
||||
<p>In addition to Envoy’s stats on <code class="docutils literal notranslate"><span class="pre">:9901</span></code>, the brightstaff dataplane
|
||||
process exposes its own Prometheus endpoint on <code class="docutils literal notranslate"><span class="pre">0.0.0.0:9092</span></code> (override
|
||||
with <code class="docutils literal notranslate"><span class="pre">METRICS_BIND_ADDRESS</span></code>). It publishes:</p>
|
||||
<ul class="simple">
|
||||
<li><p>HTTP RED — <code class="docutils literal notranslate"><span class="pre">brightstaff_http_requests_total</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_http_request_duration_seconds</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_http_in_flight_requests</span></code> (labels: <code class="docutils literal notranslate"><span class="pre">handler</span></code>, <code class="docutils literal notranslate"><span class="pre">method</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">status_class</span></code>).</p></li>
|
||||
<li><p>LLM upstream — <code class="docutils literal notranslate"><span class="pre">brightstaff_llm_upstream_requests_total</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_llm_upstream_duration_seconds</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_llm_time_to_first_token_seconds</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_llm_tokens_total</span></code> (labels: <code class="docutils literal notranslate"><span class="pre">provider</span></code>, <code class="docutils literal notranslate"><span class="pre">model</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">error_class</span></code>, <code class="docutils literal notranslate"><span class="pre">kind</span></code>).</p></li>
|
||||
<li><p>Routing — <code class="docutils literal notranslate"><span class="pre">brightstaff_router_decisions_total</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_router_decision_duration_seconds</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_routing_service_requests_total</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">brightstaff_session_cache_events_total</span></code>.</p></li>
|
||||
<li><p>Process & build — <code class="docutils literal notranslate"><span class="pre">process_resident_memory_bytes</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">process_cpu_seconds_total</span></code>, <code class="docutils literal notranslate"><span class="pre">brightstaff_build_info</span></code>.</p></li>
|
||||
</ul>
|
||||
<p>A self-contained Prometheus + Grafana stack is shipped under
|
||||
<code class="docutils literal notranslate"><span class="pre">config/grafana/</span></code>. With Plano already running on the host, bring it up
|
||||
with one command:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><code><span id="line-1"><span class="nb">cd</span><span class="w"> </span>config/grafana
|
||||
</span><span id="line-2">docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d
|
||||
</span><span id="line-3">open<span class="w"> </span>http://localhost:3000<span class="w"> </span><span class="c1"># admin / admin (anonymous viewer also enabled)</span>
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<p>Grafana auto-loads the Prometheus datasource and the brightstaff
|
||||
dashboard (look under the <em>Plano</em> folder). Prometheus scrapes the host’s
|
||||
<code class="docutils literal notranslate"><span class="pre">:9092</span></code> and <code class="docutils literal notranslate"><span class="pre">:9901</span></code> via <code class="docutils literal notranslate"><span class="pre">host.docker.internal</span></code>.</p>
|
||||
<p>Files:</p>
|
||||
<ul class="simple">
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">config/grafana/docker-compose.yaml</span></code> — one-command Prom + Grafana
|
||||
stack with provisioning.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">config/grafana/prometheus_scrape.yaml</span></code> — complete Prometheus config
|
||||
with <code class="docutils literal notranslate"><span class="pre">envoy</span></code> and <code class="docutils literal notranslate"><span class="pre">brightstaff</span></code> scrape jobs (mounted by the
|
||||
compose).</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">config/grafana/brightstaff_dashboard.json</span></code> — 19-panel dashboard
|
||||
across HTTP RED, LLM upstream, Routing service, and Process & Envoy
|
||||
link rows. Auto-provisioned by the compose; can also be imported by
|
||||
hand via <em>Dashboards → New → Import</em>.</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">config/grafana/provisioning/</span></code> — Grafana provisioning files for the
|
||||
datasource and dashboard provider.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
</div><div class="flex justify-between items-center pt-6 mt-12 border-t border-border gap-4">
|
||||
<div class="mr-auto">
|
||||
|
|
@ -252,6 +300,7 @@ are some sample configuration files for both, respectively.</p>
|
|||
<ul>
|
||||
<li><a :data-current="activeSection === '#metrics-dashboard-via-grafana'" class="reference internal" href="#metrics-dashboard-via-grafana">Metrics Dashboard (via Grafana)</a></li>
|
||||
<li><a :data-current="activeSection === '#configure-monitoring'" class="reference internal" href="#configure-monitoring">Configure Monitoring</a></li>
|
||||
<li><a :data-current="activeSection === '#brightstaff-metrics'" class="reference internal" href="#brightstaff-metrics">Brightstaff metrics</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</aside>
|
||||
|
|
@ -260,7 +309,7 @@ are some sample configuration files for both, respectively.</p>
|
|||
</div><footer class="py-6 border-t border-border md:py-0">
|
||||
<div class="container flex flex-col items-center justify-between gap-4 md:h-24 md:flex-row">
|
||||
<div class="flex flex-col items-center gap-4 px-8 md:flex-row md:gap-2 md:px-0">
|
||||
<p class="text-sm leading-loose text-center text-muted-foreground md:text-left">© 2026, Katanemo Labs, a DigitalOcean Company Last updated: Apr 19, 2026. </p>
|
||||
<p class="text-sm leading-loose text-center text-muted-foreground md:text-left">© 2026, Katanemo Labs, a DigitalOcean Company Last updated: Apr 22, 2026. </p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue