Quick and dirty VSTS builds monitoring using Sparky
Tags: vsts, perl6, linux, monitoring
Published: 2018-10-25 14:46:50

---
title: Quick and dirty VSTS builds monitoring using Sparky
published: true
description: How monitor VSTS scheduled builds using Sparky 
tags: vsts, perl6, linux, monitoring
---


[Sparky](https://dev.to/melezhik/sparky---powerful-pocket-size-task-runner-server-in-crontab-style-2ed5) is a powerful pocket size task runner server in crontab style.

It's just a piece of cake how you can monitor VSTS builds using Sparky.

The task is to check that VSTS builds scheduled daily finish successfully.



# Monitoring scenario

There are **daily builds** for production release candidates web application. The application source code is at VSTS git repository `$git-repository` and the build definition named as `Web Build`. We want to ensure the next day after a build happens that it succeeds. 

Sparrowdo plugin called [vsts-schedule-build-check](https://sparrowhub.org/info/vsts-schedule-build-check) does all the job:

```
$ nano sparrowfile

#!perl6

my $git-repository = "http/git/repo";

git-scm $git-repository;

task-run "WebApplication Build Check", "vsts-schedule-build-check", %(
  pattern => "Web Build",
);

```


# Monitoring scheduler

As builds get run daily, we run monitor daily as well, *right after* builds:

```
$ nano sparky.yaml

crontab: "2 20 * * *"
keep_builds: 10
```

`keep_builds` directive means no more `10` sparky reports are kept for this job, as we don't want to keep monitoring reports forever. 


# Report

 
```
2018-10-24 20:02:19 : [task] WebApplication Build Check [plg] vsts-schedule-build-check [path] /
++ grep schedule
++ grep 'Web Build Update'
++ vsts build list
104316  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-24 03:00:00.560775  schedule
102573  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-23 03:00:00.267757  schedule
100867  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-22 03:00:01.772785  schedule
 77631  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-21 03:00:01.573334  schedule
 78325  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-20 03:00:00.225068  schedule
 76774  2.0181e+07   completed  failed                 872  Web Build master     2018-10-17 03:00:00.877437  schedule
 75028  2.0181e+07   completed  failed                 872  Web Build master     2018-10-18 03:00:00.548563  schedule
 73277  2.0181e+07   completed  failed                 872  Web Build master     2018-10-17 03:00:00.477304  schedule
 71571  2.0181e+07   completed  failed                 872  Web Build master     2018-10-16 03:00:02.605516  schedule
 87715  2.0181e+07   completed  failed                 872  Web Build master     2018-10-15 03:00:02.266283  schedule
 88667  2.0181e+07   completed  failed                 872  Web Build master     2018-10-14 03:00:00.535670  schedule
 87423  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-13 03:00:00.537774  schedule
 61408  2.01807e+07  completed  succeeded              872  Web Build develop    2018-07-26 03:00:01.518767  schedule
ok  scenario succeeded
ok  text match /completed\s+succeeded.*\s+2018-10-24\s+\S+\s+schedule$/
ok  text match /completed\s+(succeeded|failed).*\s+2018-10-24\s+\S+\s+schedule$/
STATUS  SUCCEED

```

Last build for yesterday (`2018-10-24`) is successful and we're happy.