diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2018-04-21 11:53:28 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2018-04-21 11:59:53 -0400 |
| commit | 23d54fbdf9b6c73474ea80ec013b78bb8b691d4d (patch) | |
| tree | b6b0d2a4ae087d7d2126a510cb19d73ffa77f395 /gomplate.go | |
| parent | 49d64b9a3b6f5b2f0354fa691ccb9808bda584d9 (diff) | |
Adding basic metrics around template rendering
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'gomplate.go')
| -rw-r--r-- | gomplate.go | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gomplate.go b/gomplate.go index debfed74..e698f03e 100644 --- a/gomplate.go +++ b/gomplate.go @@ -3,6 +3,7 @@ package gomplate import ( "io" "text/template" + "time" "github.com/hairyhenderson/gomplate/data" ) @@ -59,6 +60,7 @@ func newGomplate(d *data.Data, leftDelim, rightDelim string) *gomplate { // RunTemplates - run all gomplate templates specified by the given configuration func RunTemplates(o *Config) error { + Metrics = newMetrics() defer runCleanupHooks() d := data.NewData(o.DataSources, o.DataSourceHeaders) addCleanupHook(d.Cleanup) @@ -69,14 +71,25 @@ func RunTemplates(o *Config) error { } func (g *gomplate) runTemplates(o *Config) error { + start := time.Now() tmpl, err := gatherTemplates(o) + Metrics.GatherDuration = time.Now().Sub(start) if err != nil { + Metrics.Errors++ return err } + Metrics.TemplatesGathered = len(tmpl) + start = time.Now() + defer func() { Metrics.TotalRenderDuration = time.Now().Sub(start) }() for _, t := range tmpl { - if err := g.runTemplate(t); err != nil { + tstart := time.Now() + err := g.runTemplate(t) + Metrics.RenderDuration[t.name] = time.Now().Sub(tstart) + if err != nil { + Metrics.Errors++ return err } + Metrics.TemplatesProcessed++ } return nil } |
