mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-12 01:11:41 +00:00
134 lines
3.8 KiB
Python
134 lines
3.8 KiB
Python
from datetime import datetime
|
|
from typing import List
|
|
|
|
import datahub.metadata.schema_classes as models
|
|
from datahub.metadata.urns import CorpUserUrn
|
|
from datahub.sdk import DataHubClient
|
|
from datahub.sdk.dashboard import Dashboard
|
|
|
|
client = DataHubClient.from_env()
|
|
|
|
# Day 1: User activity and absolute usage statistics
|
|
usage_day_1_user_counts: List[models.DashboardUserUsageCountsClass] = [
|
|
models.DashboardUserUsageCountsClass(
|
|
user=str(CorpUserUrn("user1")),
|
|
executionsCount=3,
|
|
usageCount=3,
|
|
),
|
|
models.DashboardUserUsageCountsClass(
|
|
user=str(CorpUserUrn("user2")),
|
|
executionsCount=2,
|
|
usageCount=2,
|
|
),
|
|
]
|
|
|
|
usage_day_1_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-09", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
eventGranularity=models.TimeWindowSizeClass(unit=models.CalendarIntervalClass.DAY),
|
|
uniqueUserCount=2,
|
|
executionsCount=5,
|
|
userCounts=usage_day_1_user_counts,
|
|
)
|
|
|
|
absolute_usage_day_1_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-09", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
favoritesCount=100,
|
|
viewsCount=25,
|
|
lastViewedAt=round(
|
|
datetime.strptime("2022-02-09 04:45:30", "%Y-%m-%d %H:%M:%S").timestamp() * 1000
|
|
),
|
|
)
|
|
|
|
dashboard = Dashboard(
|
|
platform="looker",
|
|
name="dashboards.999999",
|
|
extra_aspects=[usage_day_1_stats, absolute_usage_day_1_stats],
|
|
)
|
|
|
|
client.entities.update(dashboard)
|
|
|
|
# Day 2: Updated user activity and absolute usage statistics
|
|
usage_day_2_user_counts: List[models.DashboardUserUsageCountsClass] = [
|
|
models.DashboardUserUsageCountsClass(
|
|
user=str(CorpUserUrn("user1")),
|
|
executionsCount=4,
|
|
usageCount=4,
|
|
),
|
|
models.DashboardUserUsageCountsClass(
|
|
user=str(CorpUserUrn("user2")),
|
|
executionsCount=6,
|
|
usageCount=6,
|
|
),
|
|
]
|
|
|
|
usage_day_2_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-10", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
eventGranularity=models.TimeWindowSizeClass(unit=models.CalendarIntervalClass.DAY),
|
|
uniqueUserCount=2,
|
|
executionsCount=10,
|
|
userCounts=usage_day_2_user_counts,
|
|
)
|
|
|
|
absolute_usage_day_2_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-10", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
favoritesCount=100,
|
|
viewsCount=27,
|
|
lastViewedAt=round(
|
|
datetime.strptime("2022-02-10 10:45:30", "%Y-%m-%d %H:%M:%S").timestamp() * 1000
|
|
),
|
|
)
|
|
|
|
dashboard = Dashboard(
|
|
platform="looker",
|
|
name="dashboards.999999",
|
|
extra_aspects=[usage_day_2_stats, absolute_usage_day_2_stats],
|
|
)
|
|
|
|
client.entities.update(dashboard)
|
|
|
|
# Day 3: Single user activity and absolute usage statistics
|
|
usage_day_3_user_counts: List[models.DashboardUserUsageCountsClass] = [
|
|
models.DashboardUserUsageCountsClass(
|
|
user=str(CorpUserUrn("user1")),
|
|
executionsCount=2,
|
|
usageCount=2,
|
|
),
|
|
]
|
|
|
|
usage_day_3_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-11", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
eventGranularity=models.TimeWindowSizeClass(unit=models.CalendarIntervalClass.DAY),
|
|
uniqueUserCount=1,
|
|
executionsCount=2,
|
|
userCounts=usage_day_3_user_counts,
|
|
)
|
|
|
|
absolute_usage_day_3_stats = models.DashboardUsageStatisticsClass(
|
|
timestampMillis=round(
|
|
datetime.strptime("2022-02-11", "%Y-%m-%d").timestamp() * 1000
|
|
),
|
|
favoritesCount=102,
|
|
viewsCount=30,
|
|
lastViewedAt=round(
|
|
datetime.strptime("2022-02-11 02:45:30", "%Y-%m-%d %H:%M:%S").timestamp() * 1000
|
|
),
|
|
)
|
|
|
|
dashboard = Dashboard(
|
|
platform="looker",
|
|
name="dashboards.999999",
|
|
extra_aspects=[usage_day_3_stats, absolute_usage_day_3_stats],
|
|
)
|
|
|
|
client.entities.update(dashboard)
|