<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sai krishna chowdary</title>
    <description>The latest articles on DEV Community by sai krishna chowdary (@kittu181707).</description>
    <link>https://dev.to/kittu181707</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4033818%2Ff82ac926-b61f-4908-a282-923514502b85.jpg</url>
      <title>DEV Community: sai krishna chowdary</title>
      <link>https://dev.to/kittu181707</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kittu181707"/>
    <language>en</language>
    <item>
      <title>Self-Hosting SigNoz with Foundry on Windows ARM64 (and the WSL2 wall that almost stopped me)</title>
      <dc:creator>sai krishna chowdary</dc:creator>
      <pubDate>Fri, 17 Jul 2026 12:19:48 +0000</pubDate>
      <link>https://dev.to/kittu181707/self-hosting-signoz-with-foundry-on-windows-arm64-and-the-wsl2-gotcha-that-almost-stopped-me-1bfn</link>
      <guid>https://dev.to/kittu181707/self-hosting-signoz-with-foundry-on-windows-arm64-and-the-wsl2-gotcha-that-almost-stopped-me-1bfn</guid>
      <description>&lt;p&gt;My laptop is a Windows ARM64 machine. Most self-hosted observability tooling assumes you're on Linux, macOS, or at worst regular x86 Windows — so when I sat down to self-host SigNoz for the Agents of SigNoz hackathon, I genuinely didn't know if it would work at all before I'd tried. An hour later I had a fully healthy stack, an MCP server responding, and one very specific error message that taught me something the docs don't spell out.&lt;/p&gt;

&lt;p&gt;Why self-host, and why Foundry&lt;/p&gt;

&lt;p&gt;I'm building an autonomous incident-response agent for this hackathon, and my first instinct was to reach for SigNoz Cloud — no infrastructure to babysit, one less thing to break mid-week. But the hackathon's own field requirements are specific: install via Foundry, and include the resulting casting.yaml/casting.yaml.lock in your repo so judges can reproduce the deployment. That's a self-hosted-only requirement — Foundry doesn't target Cloud at all. So before committing to that architecture for the real project, I wanted to know: does this actually work cleanly on my hardware, or am I about to spend Day 1 fighting Docker instead of building?&lt;/p&gt;

&lt;p&gt;Getting Foundry running&lt;/p&gt;

&lt;p&gt;Foundry is SigNoz's newer install path — it replaced the old install script, and the whole idea is config-as-code: one file describes your deployment, one command stands it up. The minimal casting.yaml is small enough to read in full:&lt;/p&gt;

&lt;p&gt;yamlapiVersion: v1alpha1&lt;br&gt;
kind: Installation&lt;br&gt;
metadata:&lt;br&gt;
  name: signoz&lt;br&gt;
spec:&lt;br&gt;
  deployment:&lt;br&gt;
    flavor: compose&lt;br&gt;
    mode: docker&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;bashfoundryctl cast -f casting.yaml&lt;/p&gt;

&lt;p&gt;That single command checks your environment, generates the actual Compose files, and brings up ClickHouse, ClickHouse Keeper, Postgres, the OTel collector, and the SigNoz UI. Watching everything land on Healthy in one pass, on an ARM64 machine I half-expected to fight with, was a genuinely good moment.&lt;/p&gt;

&lt;p&gt;The wall: "docker: command not found"&lt;/p&gt;

&lt;p&gt;Everything worked — until I stopped the containers to test a clean restart, and came back to this:&lt;/p&gt;

&lt;p&gt;The command 'docker' could not be found in this WSL 2 distro.&lt;br&gt;
We recommend to activate the WSL integration in Docker Desktop settings.&lt;/p&gt;

&lt;p&gt;This confused me for longer than I'd like to admit, because Docker had just worked, in the same terminal, minutes earlier. The actual cause: Docker Desktop's WSL integration isn't a single global switch — it's enabled per distro, individually, and I hadn't noticed my specific distro (Dicky) had its own toggle sitting separately in Docker Desktop → Settings → Resources → WSL Integration. Flipping that on and hitting Apply &amp;amp; Restart fixed it immediately.&lt;/p&gt;

&lt;p&gt;The lesson that's easy to miss from the docs alone: "enable WSL integration" doesn't mean "flip it on once." If you're running multiple WSL distros, or reinstalled/renamed yours, check that your specific distro is checked, not just that integration is on in general.&lt;/p&gt;

&lt;p&gt;Turning on the MCP server&lt;/p&gt;

&lt;p&gt;The feature I actually wanted to test was SigNoz's own MCP (Model Context Protocol) server — since my hackathon project is an agent that needs to query telemetry programmatically, and SigNoz shipping this as a first-class, one-flag addition to Foundry is directly relevant. Adding it meant one small edit to casting.yaml:&lt;/p&gt;

&lt;p&gt;yamlspec:&lt;br&gt;
  mcp:&lt;br&gt;
    spec:&lt;br&gt;
      enabled: true&lt;/p&gt;

&lt;p&gt;Re-running foundryctl cast added the signoz-mcp container without disturbing anything already running — no downtime for the rest of the stack, which I wasn't expecting from a config-as-code tool on a first try. A health check confirmed it:&lt;/p&gt;

&lt;p&gt;bashcurl -fsS localhost:8000/livez &amp;amp;&amp;amp; echo " OK"&lt;/p&gt;

&lt;h1&gt;
  
  
  ok OK
&lt;/h1&gt;

&lt;p&gt;That means any MCP-compatible client — Claude Code, Cursor, or the custom agent I'm building — can query real traces, logs, and metrics using the same schema a human sees in the UI, without a separate integration project. For a hackathon track built specifically around agent-native observability, that's a meaningfully lower barrier than I expected.&lt;/p&gt;

&lt;p&gt;Setting up API access&lt;/p&gt;

&lt;p&gt;Last piece: a Service Account, created under Settings → Identity &amp;amp; Access → Service Accounts (not the account dropdown at the top, which is just your personal profile — took me a minute to find the right menu). Generating a key from its Keys tab gave me the credential both the MCP server and SigNoz's regular query API use for programmatic access.&lt;/p&gt;

&lt;p&gt;What I'd tell someone else trying this&lt;/p&gt;

&lt;p&gt;If you're on Windows, check Docker Desktop's WSL integration toggle is on for your specific distro, not just enabled generally — this cost me the most confusion for the least actual problem.&lt;br&gt;
The MCP flag costs nothing to enable up front, even if you're not sure yet whether you'll use it.&lt;br&gt;
Foundry's pitch — one config file, one command, reproducible via casting.yaml.lock — held up under a genuinely awkward hardware combination (Windows, ARM64, WSL2). Total time from zero to a fully healthy stack, WSL hiccup included: under an hour.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Self-hosting SigNoz via Foundry on Windows ARM64 works, and works cleanly, once you know where the one Windows-specific gotcha is hiding. Next up: instrumenting real services with OpenTelemetry and building the actual incident-response agent this was all in service of.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>devchallenge</category>
      <category>mcp</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
