-
Notifications
You must be signed in to change notification settings - Fork 19
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
“Libin diagram” Contribution Flows #837
Comments
Suggested steps:
|
Question for @ravenac95 @ccerv1 and I were just talking about this one, and I think we need some help with the metrics rolling window factory to support it.
I think right now we only assume a single rolling window, is that correct? |
ohhhh ya interesting, we do currently assume 1, but ya I'll need to think how we can combine things so we can depend on some of these other rolling windows. This seems to be rolling window queries on rolling windows. |
This changes how I was thinking of things because I was trying to constrain the collection/project automatic creation a bit. Let me think on this! |
Actually so what i was thinking in terms of changes was to do something like this: timeseries_metrics(
model_prefix="timeseries",
metric_queries={
# This will automatically generate star counts for the given roll up periods.
# A rollup is just a simple addition of the aggregation. So basically we
# calculate the daily rollup every day by getting the count of the day.
# Then the weekly every week by getting the count of the week and
# monthly by getting the count of the month.
# Additionally this will also create this along the dimensions (entity_types) of
# project/collection so the resulting models will be named as follows
# `metrics.timeseries_stars_to_{entity_type}_{rollup}`
"stars": MetricQueryDef(
ref="stars.sql",
rollups=["daily", "weekly", "monthly"],
entity_types=["artifact", "project", "collection"], # This is the default value
),
# This defines something with a rolling option that allows you to look back
# to some arbitrary window. So you specify the window and specify the unit.
# The unit and the window are used to pass in variables to the query. So it's
# up to the query to actually query the correct window.
# The resultant models are named as such
# `metrics.timeseries_active_days_to_{entity_type}_over_{window}_{unit}`
"active_days": MetricQueryDef(
ref="active_days.sql",
rolling={
"windows": [30, 60, 90],
"unit": "day",
"cron": "0 0 1 */6 *", # This determines how often this is calculated
}
),
},
default_dialect="clickhouse",
) I think this setup should give us the flexibility to be able to do the window of windows without having to build much additional craziness i think? |
I will do some updating of docs for this but this is an example of a "third order" rolling window: https://github.com/opensource-observer/oso/blob/main/warehouse/metrics_mesh/oso_metrics/change_in_developers.sql It is derived originally from the active days rolling window, which then uses the developer classifications (active, part-time, full-time) and then compares the last two intervals associated with that metric... it's ergonomically clunky but it works at the moment |
I imagine 4 states to start:
|
This is implemented as of #2541 |
From Observable Github Developers Building on our Stack Never used: anyone who has never contributed to a github project/repo built on our stack (While this is a large population, we are clearly targeting sub-areas of this market first - aka web3 developers who are building apps, tools, etc on our stack) First time users: a first-time developer contributing to a github project/repo built on our stack (Note, this means that first time users need to do more than install a binary - they need to build something on it (websites should count!)) High-value users: a frequent (~>5x/week?) contributor to projects/repos built on our stack (ipfs+filecoin) (Examples of high-value users should include: Textile devs, Audius devs, Fleek devs, ENS devs, Infinite Scroll devs, Anytype devs, Valist devs, Infura devs, etc) Low-value users: a developer occasionally contributing to projects/repos built tangentially on our stack (Maybe they only depend on a small lib, or the dependence is very tangential to their core offering, etc) Inactive users: a lapsed developer who is no longer actively contributing to a project built on our stack (either because the project is defunct, they stopped contributing, etc) Top KPIs High-Value Users: First Time Users: (this week), (last week), (growth rate) |
What is it?
The ability for a project’s ecosystem to understand, in detail, how new users are entering and exiting their open source community / user dependency graph.
The text was updated successfully, but these errors were encountered: