Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>IC3 MonitoringAsCodeNew to Visual Studio Code? Get it now.
IC3 MonitoringAsCode

IC3 MonitoringAsCode

IC3 Platform MonitoringAsCode

|
1 install
| (0) | Free
IC3 MonitoringAsCode authoring assistant for VS Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

IC3 MonitoringAsCode

VS Code authoring assistant for Microsoft.IC3.MonitoringAsCode C# definitions.

Current features:

  • Dashboard link checker — validates AddDashboardLink(...) paths against the configured Geneva dashboard tree, with diagnostics, inline decorations, hover info, autocomplete, and quick fixes.
  • .LastModified() auto-update — optionally stamps timestamp and author on save.

More MonitoringAsCode authoring helpers will be added here over time.

Install

From the Extensions view in VS Code, search for IC3 MonitoringAsCode and install. Or from the command line:

code --install-extension IC3PlatformMonitoringAsCode.ic3-monitoringascode

Marketplace listing: https://marketplace.visualstudio.com/items?itemName=IC3PlatformMonitoringAsCode.ic3-monitoringascode

Activation

The extension activates when you open a C# file in a workspace that contains a .mac.json (or .mac.local.json) configuration file. The config is searched upward from the active file's directory through workspace roots — so it can live next to the C# project, at the repo root, or anywhere in between.

.mac.json schema

{
  "genevaSourcePath": "../../sync_calling_concore-broker-geneva/SkypeCoreBroker"
}
Field Type Description
genevaSourcePath string Path to the Geneva source folder containing Dashboards/ (and MonitorsV2/). May be absolute or relative to the .mac.json file.

A relative path is preferred for the source-controlled .mac.json — it encodes the team's expected sibling-checkout convention (here: the Geneva repo cloned next to ic3_iac). Devs whose layout differs can drop a .mac.local.json next to it with an absolute path, e.g.:

{
  "genevaSourcePath": "D:/work/geneva/SkypeCoreBroker"
}

Use .mac.local.json for any per-developer overrides — in each directory along the upward walk, .mac.local.json is checked before .mac.json, and the first file found wins (no merging). It should be .gitignored.

Features

Dashboard link checker

Validates AddDashboardLink("…") calls in C# against the dashboard JSON tree configured via genevaSourcePath in .mac.json.

You'll see:

  • A red squiggle and ❌ decoration on any path that doesn't resolve to a dashboard JSON file under the configured root.
  • A green ✅ decoration when the path resolves.
  • Hover over the path to see the resolved dashboard file.
  • Autocomplete inside the string literal to pick from known dashboards.
  • A "Replace with: …" code action when the path differs only by case.

Toggle via ic3Mac.dashboardLinkChecker.enabled.

.LastModified()tself is configured via genevaSourcePath` in

.mac.json — see the Activation section above When enabled, on save the extension rewrites the .LastModified("date", "author") argument with the current timestamp and the configured author.

Toggle via ic3Mac.autoUpdateLastModified; set the author via ic3Mac.author.

Configuration

Settings contributed under ic3Mac.*:

Setting Default Description
ic3Mac.dashboardLinkChecker.enabled true Enable dashboard link validation, hover info, autocomplete, and quick fixes.
ic3Mac.autoUpdateLastModified false Automatically update .LastModified() timestamp and author on save.
ic3Mac.author "" Author name for .LastModified() updates. Falls back to git config user.name.

The dashboard root is read from .mac.json / .mac.local.json in the workspace root. See the MonitoringAsCode docs for the schema.

Reporting issues

File a bug or feature request against the ic3_iac repository.

Contributing

See CONTRIBUTING.md for build, debug, packaging, and publish instructions.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft