INDUSTRIES

Workouts tracken mit Splunk

Der Tag, an dem ich bei Splunk angefangen habe, war derselbe Zeitpunkt, an dem ich beschlossen habe, wieder mehr für meine Fitness zu tun. Ich wollte kein überhartes Training beginnen, sondern zu Anfang einfach mit dem Fahrrad zur Arbeit fahren und im nahegelegenen Park joggen gehen.

Nach ein paar Tagen kam ich auf die spannende Idee, meine sportlichen Aktivitäten in Splunk zu erfassen. Dadurch stünden mir dann nützliche Statistiken und Trends zur Verfügung, mit denen ich meine Fortschritte und andere Kennzahlen nachverfolgen könnte – wahrscheinlich sogar Dinge, an die ich vorher noch nicht einmal gedacht habe. Wie viele andere Radfahrer und Jogger tracke ich meine Aktivitäten mit Strava. Strava stellt eine API bereit, die wir als Quelle für unsere Daten verwenden können.

2018 schrieb mein Kollege Stephen Luedtke den Blogbeitrag „Iron Splunk“ über die Integration von Splunk und Strava. Da Strava seit damals OAuth 2.0 für den Zugriff auf seine API implementiert hat, wodurch weitere Eingaben für den Datenzugriff notwendig sind, musste ich mir eine andere Möglichkeit überlegen.

Da ich die Entwicklung meiner Fitness unbedingt mit Splunk erfassen wollte, beschloss ich, die Dinge selbst in die Hand zu nehmen und schrieb das Strava Add-On für Splunk – gerade noch rechtzeitig, für meine ehrgeizigen Neujahrsvorsätze! Zur Erstellung des Add-Ons habe ich übrigens den Add-On Builder von Splunk mit Python verwendet. 

Vor der Installation des Add-Ons solltet ihr unbedingt auf dessen Detailseite nachlesen, wie ihr das Anfangs-Setup für die Autorisierung über OAuth 2.0 durchführt (ist nur einmal notwendig).

Wenn ihr die App in Strava erstellt und den Zugangscode gemäß den Anweisungen erhalten habt, könnt ihr das Add-On einrichten. Gebt in die auszufüllenden Felder die Werte ein, die ihr von Strava erhalten habt. Der Startzeitpunkt (Starting Timestamp) ist optional und nur notwendig, falls ihr Daten ab einem bestimmten Zeitpunkt abrufen möchtet.

Strava: Activities

Das war’s auch schon. Jetzt werden Daten aus Strava extrahiert, was abhängig von der Anzahl vorhandener Aktivitäten etwas dauern kann. Wenn dieser Schritt abgeschlossen ist, seht ihr alle Events in Splunk und das Rennen kann beginnen!

Strava activities

Ich habe meine eigene App mit bestimmten Statistikwerten erstellt, die für mich relevant sind. Hier ist ein Beispiel für einige grundlegende Summen mit einer Möglichkeit, zwischen Dauer und Entfernung pro Woche zu wechseln. Die Strava-API stellt umfangreiche Details zu jeder Aktivität bereit, von denen einige in der Tabelle am unteren Bildschirmrand angezeigt werden.

Strava Activities Dashboard

Die letzte Tabellenspalte mit der Überschrift „Pram“ (Kinderwagen) ist vielleicht etwas ungewöhnlich. Ich wollte mein Tempo beim Laufen mit Kinderwagen und ohne Kinderwagen vergleichen, da ich beim Laufen oft eines meiner Kinder im Kinderwagen mitnehme (manchmal sogar beide). Es hat mich auch nicht wirklich überrascht, dass ich ohne Kinderwagen schneller laufe! Auffallend ist auch der Rückgang des Tempos Ende Dezember – ich schiebe das mal auf die vielen Weihnachtsplätzchen.

Strava Pram Dashboard

Mit dem Lookup-Editor lassen sich individuelle Notizen zu Aktivitäten hinzuzufügen. Ich wollte das Ganze jedoch dynamisch lassen und die Daten direkt aus Strava einlesen. Für die oben abgebildete Visualisierung wird das Beschreibungsfeld in Strava verwendet, wobei die Angabe „1P“ bzw. „2P“ als Trigger für Joggen mit Einzelkinderwagen (1P) bzw. Doppelkinderwagen (2P) herangezogen wird.

Die zugehörige SPL lautet wie folgt:

index=strava sourcetype=strava:activities type=Run
| eval avg_speed = round(average_speed * 3.6,1)
| eval pram_people = if(description=="1P","Single",if(description=="2P","Double","No Pram"))
| timechart span=1w@w1 max(avg_speed) AS avg_speed by pram_people
| trendline sma2(avg_speed) as trend
| fields "No Pram" Single Double

Um meine Aktivitäten zu visualisieren, beschloss ich, meine Bewegungen auf einer Karte darzustellen (Joggingstrecken in Rosa und Fahrradtouren in Blau). Hierbei handelt es sich um einen HTML iframe und dieses Skript. Mit dem Skript könnt ihr entweder ein Mal eine CSV-Datei erstellen oder den Splunk-Befehl outputcsv zur Erstellung der Datei verwenden und ihn dann für die Ausführung in regelmäßigen Abständen planen.

Strava Heatmap

Und last but not least habe ich mir überlegt, dass es ganz lustig wäre, aus allen Daten einige willkürliche Statistiken zu erstellen. Einige Zahlen darin sind recht nützlich, andere dagegen weniger, doch alle können helfen, sich ein bestimmtes Ziel zu setzen. Viele der Fenster verfügen über dynamische Beschriftungen zum besseren Verständnis, wie z. B. der Vergleich des Kalorienverbrauchs mit häufig verzehrten Nahrungsmitteln.

Strava Dashboard

Die Panels mit der dynamischen Beschriftung verwenden die Tags <finalized>, um mehrere Felder anzuzeigen. Das nachfolgende Beispiel dazu ergibt beispielsweise das Panel „Most kudo’d activity“ (für respektable Aktivitäten). Der groß angezeigte Einzelwert gibt die Zahl der „kudos“, also Respektsbezeugungen, an, und in der Beschriftung werden das Datum und der Name der Aktivität genannt.

    <panel>
      <single>
        <title>Most kudo'd activity</title>
        <search>
          <finalized>
            <set token="kudos_name">$result.name$</set>
            <set token="kudos_date">$result.date$</set>
          </finalized>
          <query>
            index=strava sourcetype=strava:activities type=*
            | eval date = strftime(_time,"%d-%m-%Y")
            | stats max(kudos_count) as kudos by name, id, date
            | head 1
            | fields kudos name date id
          </query>
          <earliest>$top_timepicker.earliest$</earliest>
          <latest>$top_timepicker.latest$</latest>
        </search>
        <option name="underLabel">$kudos_date$: $kudos_name$</option>
        <option name="unit">kudos</option>
      </single>
    </panel>

Wenn ihr also Strava und Splunk verwendet, probiert das Add-On doch einfach aus! Viel Erfolg beim Erreichen eurer diesjährigen Fitnessziele!

*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier: Work Out Your Workouts with Splunk (16.01.2020). 

----------------------------------------------------
Thanks!
Splunk

Splunk
Posted by

Splunk

TAGS
Show All Tags
Show Less Tags