Skip to content

dizzy.generators.telemetry

dizzy.generators.telemetry

Telemetry generator — scaffold def/telemetry.yaml.

Each telemetry entry names a host-injected observation sink. Its LinkML class describes the payload shape the function passes into the sink callable.

render_scaffold_telemetry(telemetry)

Render a LinkML stub for def/telemetry.yaml from the feat definition.

Source code in dizzy/src/dizzy/generators/telemetry.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def render_scaffold_telemetry(telemetry: list[TelemetryDef]) -> str:
    """Render a LinkML stub for def/telemetry.yaml from the feat definition."""
    lines = [
        "id: https://example.org/telemetry",
        "name: telemetry",
        "prefixes:",
        "  linkml: https://w3id.org/linkml/",
        "default_range: string",
        "imports:",
        "  - linkml:types",
        "classes:",
    ]
    for tel in telemetry:
        lines.append(f"  {tel.name}:")
        lines.extend(description_lines(tel.description, "    "))
        lines.append("    attributes: {}")
    lines.append("")
    return "\n".join(lines)

write_scaffold_telemetry(telemetry, output_dir)

Write def/telemetry.yaml; skip if file already exists.

Source code in dizzy/src/dizzy/generators/telemetry.py
34
35
36
37
38
39
40
41
42
def write_scaffold_telemetry(telemetry: list[TelemetryDef], output_dir: Path) -> None:
    """Write def/telemetry.yaml; skip if file already exists."""
    dest = output_dir / "def" / "telemetry.yaml"
    if dest.exists():
        logger.debug("skipped existing file", extra={"path": str(dest)})
        return
    dest.parent.mkdir(parents=True, exist_ok=True)
    dest.write_text(render_scaffold_telemetry(telemetry))
    logger.debug("wrote file", extra={"path": str(dest)})