summaryrefslogtreecommitdiff
path: root/gomplate.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2018-04-21 11:53:28 -0400
committerDave Henderson <dhenderson@gmail.com>2018-04-21 11:59:53 -0400
commit23d54fbdf9b6c73474ea80ec013b78bb8b691d4d (patch)
treeb6b0d2a4ae087d7d2126a510cb19d73ffa77f395 /gomplate.go
parent49d64b9a3b6f5b2f0354fa691ccb9808bda584d9 (diff)
Adding basic metrics around template rendering
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'gomplate.go')
-rw-r--r--gomplate.go15
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
}