From ceaac47d6b0d894e92f8618b429dd364f6d4fdef Mon Sep 17 00:00:00 2001 From: Alexandru Mahmoud Date: Thu, 25 Jul 2024 16:42:14 -0400 Subject: [PATCH] Add event stats --- .github/scripts/event_stats.sh | 11 +++++++ .github/workflows/event-stats.yaml | 41 +++++++++++++++++++++++++++ .github/workflows/slash_listener.yaml | 5 ++++ 3 files changed, 57 insertions(+) create mode 100644 .github/scripts/event_stats.sh create mode 100644 .github/workflows/event-stats.yaml diff --git a/.github/scripts/event_stats.sh b/.github/scripts/event_stats.sh new file mode 100644 index 0000000..3e2c391 --- /dev/null +++ b/.github/scripts/event_stats.sh @@ -0,0 +1,11 @@ +#!/bin/bash +NAMESPACE="$1" +RELEASE="$2" +EVENT="$3" + +echo "Stats for $EVENT:" +echo "Total launches: $(kubectl exec -n $NAMESPACE galaxy-$RELEASE-postgres-0 -- bash -c "psql -d galaxy -U galaxydbuser -c \"select count(j.id) from job j where j.tool_id like '%_%$EVENT%';\"" | sed '3q;d' | tr -d ' ')" +echo "Total users: $(kubectl exec -n $NAMESPACE galaxy-$RELEASE-postgres-0 -- bash -c "psql -d galaxy -U galaxydbuser -c \"select count(DISTINCT j.user_id) from job j where j.tool_id like '%_%$EVENT%';\"" | sed '3q;d' | tr -d ' ')" + +printf "\nSummary:\n\nTOOL_ID NUM LAUNCHES NUM USERS\n" +kubectl exec -n $NAMESPACE galaxy-$RELEASE-postgres-0 -- bash -c "psql -d galaxy -U galaxydbuser -c \"COPY(SELECT tool_id, COUNT(DISTINCT id) AS num_jobs, COUNT(DISTINCT user_id) AS num_users FROM job GROUP BY tool_id) TO STDOUT;\"" | grep "$EVENT" | sed 's/interactivetool_biocworkshop_//g' diff --git a/.github/workflows/event-stats.yaml b/.github/workflows/event-stats.yaml new file mode 100644 index 0000000..b7a5d9c --- /dev/null +++ b/.github/workflows/event-stats.yaml @@ -0,0 +1,41 @@ +name: Event stats workflow +on: + repository_dispatch: + types: [eventstats-command] +jobs: + generatestats: + name: Generate stats + runs-on: ubuntu-latest + env: + ISSUE_NUM: ${{ github.event.client_payload.github.payload.issue.number }} + NAMESPACE: gxybioc + RELEASE: gxy + steps: + - uses: actions/checkout@v3 + + - name: Set defaults for all inputs + id: defs + run: | + EVENTINPUT=${{ github.event.client_payload.slash_command.args.named.event || 'error' }} + echo event=$EVENTINPUT >> $GITHUB_OUTPUT + + - name: save kubeconfig + shell: bash + run: mkdir -p ~/.kube && echo "${{ secrets.TEST_KUBECONFIG }}" > ~/.kube/config + - name: Install Kubectl + run: curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" && chmod +x ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl && kubectl version + + - name: Get launch stats + id: stats + run: | + TEXT=$(bash .github/scripts/event_stats.sh $NAMESPACE $RELEASE ${{steps.defs.outputs.event}}) + echo text="$TEXT" >> $GITHUB_OUTPUT + + - name: Create comment + uses: peter-evans/create-or-update-comment@v3 + with: + token: ${{ secrets.PAT }} + issue-number: ${{ github.event.client_payload.github.payload.issue.number }} + body: | + _AUTO-GENERATED RESPONSE_ + '${{steps.stats.outputs.text}}' diff --git a/.github/workflows/slash_listener.yaml b/.github/workflows/slash_listener.yaml index dc7600e..13df6c4 100644 --- a/.github/workflows/slash_listener.yaml +++ b/.github/workflows/slash_listener.yaml @@ -13,6 +13,11 @@ jobs: reactions: false config: > [ + { + "command": "eventstats", + "permission": "none", + "issue_type": "issue" + }, { "command": "stats", "permission": "none",