Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: Historical usage reporting for self-hosted instances #10001

Closed
jordanh opened this issue Jul 18, 2024 · 7 comments · Fixed by #10236
Closed

Enhancement: Historical usage reporting for self-hosted instances #10001

jordanh opened this issue Jul 18, 2024 · 7 comments · Fixed by #10236
Assignees
Labels
discussion enhancement Public Sector Work related to the public sector 🇺🇸🫡

Comments

@jordanh
Copy link
Contributor

jordanh commented Jul 18, 2024

Issue - Enhancement

For many of the deployments we'll have within the Public Sector, we won't have access to our instances or their databases. The best we'll be able to do in order to track usage and negotiate/update our license fees will be to ask the DevOps/SRE support staff who operate our instances to run a command and send us the result.

In a future, ideal state. There will be a dashboard where they can click a button and it'll download a file they can send to us. For now, let's start by defining a GraphQL query they can run and then send us the output

Acceptance Criteria (optional)

A DevOps/SRE individual with su access to one of our deployments can:

  • Run a GraphQL query that accepts the following parameters:

    • optional: the start date to run history, defaults to all history
    • optional: the end date to run history, defaults to now
    • optional: a boolean flag that aggregates across all orgs, or one row for each org
    • optional: a list of orgIds to include in the result, defaults to all orgs
  • ...and can return the following data:

    • Some identifiable information about which deployment this is
    • One row/list item for each month and org (unless aggregating across all orgs) in the reporting period:
      • the last day of the month
      • the name of the org (and orgId) the data pertains to (unless aggregating)
      • the number of unique users who signed up for Parabol within the period
      • the number of unique users who logged into/connected to Parabol within the period
      • the number of users who participated in a meeting within the period
      • the number of meetings ran within a period

Estimated effort: 13 points (see CONTRIBUTING.md)

@jordanh jordanh added enhancement discussion Public Sector Work related to the public sector 🇺🇸🫡 labels Jul 18, 2024
@jordanh
Copy link
Contributor Author

jordanh commented Jul 18, 2024

@mattkrick here is the shape of the stats query I had in mind...

@jordanh
Copy link
Contributor Author

jordanh commented Jul 18, 2024

cc @dbumblis-parabol

@mattkrick
Copy link
Member

mattkrick commented Jul 25, 2024

is there a disk we could save it to? if so, we could use a cronjob.
alternatively, we could add a feature to GraphiQL that downloads the response as a file so they don't have to copy/paste.
we can also pre-load the query we want them to run in the app

we should sign the payload, although if the app can sign the payload, they could manually sign the payload, too. So, the best bet is obfuscation-- make the secret hard to get at and/or the generation of the checksum difficult.

@tianrunhe
Copy link
Contributor

Fruit of thoughts: can we reuse/build on top of https://action.parabol.co/usage ?

@jordanh
Copy link
Contributor Author

jordanh commented Aug 6, 2024

is there a disk we could save it to? if so, we could use a cronjob.
alternatively, we could add a feature to GraphiQL that downloads the response as a file so they don't have to copy/paste.
we can also pre-load the query we want them to run in the app

You know... they do have a logging system so we could just emit these data in their logs every once in a while. Perhaps that would be good ergonomics?

@mattkrick
Copy link
Member

ha! i like that. cron job that just spits to the console?
honestly, whatever works for them works for me.

@jordanh
Copy link
Contributor Author

jordanh commented Sep 20, 2024

Note: we cannot provide:

the number of unique users who logged into/connected to Parabol within the period

As we only keep lastSeenAt on the OrganizationUser table. Today we have no audit trail for connections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion enhancement Public Sector Work related to the public sector 🇺🇸🫡
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants