feat dedup Tera renderer; update logging

This commit is contained in:
2026-02-26 02:00:11 -07:00
parent f8ced2196c
commit d8134095ab
7 changed files with 303 additions and 111 deletions

View File

@@ -60,25 +60,24 @@ Environment:
$ skyforge -d xyz1-ex-edge-r101
Skyforge found 9 renderable devices
Matched 1 devices against 'xyz1-ex-edge-r101'
Processing templates for 'xyz1-ex-edge-r101'
Rendering configs:
| xyz1-ex-edge-r101
Writing Output:
| ./out/xyz1-ex-edge-r101/all.live.junos
| ./out/xyz1-ex-edge-r101/all.shifted.junos
| ./out/xyz1-ex-edge-r101/all.init.junos
Completed Successfully
```
### Verbose
``` bash
$ skyforge -d xyz1-ex-edge-r101 --verbose
$ skyforge -d xyz1-ex-edge-r101 -v
Skyforge found 9 renderable devices
Matched 1 devices against 'xyz1-ex-edge-r101'
| ./spec/xyz/ex-edge-r/xyz1-ex-edge-r101.yaml
Processing templates for 'xyz1-ex-edge-r101'
| ./tmpl/ex-edge-r/system.tera
| ./tmpl/ex-edge-r/interfaces.tera
| ./tmpl/ex-edge-r/protocols.tera
| ./tmpl/ex-edge-r/policy-options.tera
Rendering configs:
| xyz1-ex-edge-r101
Writing Output:
| ./out/xyz1-ex-edge-r101/live/system.junos
| ./out/xyz1-ex-edge-r101/live/interfaces.junos
@@ -96,12 +95,16 @@ Writing Output:
| ./out/xyz1-ex-edge-r101/init/policy-options.junos
| ./out/xyz1-ex-edge-r101/all.init.junos
| ./out/xyz1-ex-edge-r101/context.yaml
Completed Successfully
```
### Debug
``` bash
$ skyforge -d xyz1-ex-edge-r101 --debug
$ skyforge -d xyz1-ex-edge-r101 -D
Using tmp dir: /tmp/skyforge-1772096013345
Removing existing output path: ./out
Output symlinked: ./out -> /tmp/skyforge-1772096013345
Skyforge found 9 renderable devices
Matched 1 devices against 'xyz1-ex-edge-r101'
| ./spec/xyz/ex-edge-r/xyz1-ex-edge-r101.yaml
@@ -112,24 +115,24 @@ Components {
zonal: "./spec/xyz/ex-edge-r/xyz1.common.yaml",
device: "./spec/xyz/ex-edge-r/xyz1-ex-edge-r101.yaml",
}
Processing templates for 'xyz1-ex-edge-r101'
| ./tmpl/ex-edge-r/system.tera
| ./tmpl/ex-edge-r/interfaces.tera
| ./tmpl/ex-edge-r/protocols.tera
| ./tmpl/ex-edge-r/policy-options.tera
Rendering templates for xyz1-ex-edge-r101
| system.live
| interfaces.live
| protocols.live
| policy-options.live
| system.shifted
| interfaces.shifted
| protocols.shifted
| policy-options.shifted
| system.init
| interfaces.init
| protocols.init
| policy-options.init
Rendering configs:
| xyz1-ex-edge-r101
| system.live
| interfaces.live
| protocols.live
| policy-options.live
| system.shifted
| interfaces.shifted
| protocols.shifted
| policy-options.shifted
| system.init
| interfaces.init
| protocols.init
| policy-options.init
Writing Output:
| ./out/xyz1-ex-edge-r101/live/system.junos
| ./out/xyz1-ex-edge-r101/live/interfaces.junos
@@ -147,6 +150,7 @@ Writing Output:
| ./out/xyz1-ex-edge-r101/init/policy-options.junos
| ./out/xyz1-ex-edge-r101/all.init.junos
| ./out/xyz1-ex-edge-r101/context.yaml
Completed Successfully
```
## Flamegraph
@@ -157,3 +161,12 @@ Assume flamelens is installed, otherwise `cargo install flamelens`
cd demo
cargo flamegraph --post-process 'flamelens --echo' --profile profiling -- --devices ".*"
```
## Benchmark
Using Demo:
``` bash
process_specs time: [1.6096 ms 1.6205 ms 1.6327 ms]
from_spec time: [3.3230 ms 3.3397 ms 3.3575 ms]
```