From d98c5b61cb5d576a41ac786f03714ac2e81e451b Mon Sep 17 00:00:00 2001 From: tischrei Date: Mon, 4 Aug 2025 10:28:59 +0000 Subject: [PATCH 1/7] add collect_statistics tool --- tools/collect_statistics.py | 120 +++ tools/stats.json | 2002 +++++++++++++++++++++++++++++++++++ 2 files changed, 2122 insertions(+) create mode 100644 tools/collect_statistics.py create mode 100644 tools/stats.json diff --git a/tools/collect_statistics.py b/tools/collect_statistics.py new file mode 100644 index 0000000..4b71e79 --- /dev/null +++ b/tools/collect_statistics.py @@ -0,0 +1,120 @@ +#!/usr/bin/python + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import requests +import json +import time +from datetime import datetime, timedelta +import os +import otc_metadata.services +import argparse + +# ===== Configuration ===== +UMAMI_BASE_URL = "https://analytics.otc-service.com" +USERNAME = os.getenv("UMAMI_USERNAME") +PASSWORD = os.getenv("UMAMI_PASSWORD") +OUTPUT_FILE = "stats.json" + +def parse_args(): + """ + Command-line arguments + """ + parser = argparse.ArgumentParser(description="Umami Statistic Script") + parser.add_argument( + "--environment", + default=['public'], + nargs='+', + choices=['public', 'internal', 'hidden'], + help="Environments (default: ['public'])" + ) + parser.add_argument( + "--cloud-environment", + default="eu_de", + choices=['eu_de', 'swiss'], + help="Cloud Environments (default: eu_de)" + ) + parser.add_argument( + "--website-id", + required=True, + help="Umami Website ID" + ) + + return parser.parse_args() + +def get_umami_token(): + """Get Bearer-Token from Umami-API.""" + url = f"{UMAMI_BASE_URL}/api/auth/login" + response = requests.post(url, json={"username": USERNAME, "password": PASSWORD}) + response.raise_for_status() + return response.json().get("token") + +def get_4_weeks_range(): + """Calculates start and end of 4 weeks range in UNIX timestamp format.""" + end_date = datetime.utcnow() + start_date = end_date - timedelta(weeks=4) + + start_ts = int(start_date.timestamp() * 1000) + end_ts = int(end_date.timestamp() * 1000) + return start_ts, end_ts + +def fetch_pageviews(token, start_ts, end_ts, website_id): + """Retrieves statistics from API server.""" + headers = {"Authorization": f"Bearer {token}"} + url = f"{UMAMI_BASE_URL}/api/websites/{website_id}/metrics" + params = { + "type": "url", + "startAt": start_ts, + "endAt": end_ts + } + + response = requests.get(url, headers=headers, params=params) + response.raise_for_status() + return response + +def filter_stats_by_existing_services( + stats, cloud_environment, environment): + """Filter the stats to services which are existing""" + services = otc_metadata.services.Services().all_services_by_cloud_environment( + cloud_environment=cloud_environment, + environments=environment) + + print(json.dumps(services)) + + res = services + return res + +def save_to_file(data, filename): + """Saves collected data in a file.""" + print(data) + # with open(filename, "w", encoding="utf-8") as f: + # json.dump(data, f, indent=2, ensure_ascii=False) + +def main(): + args = parse_args() + token = get_umami_token() + start_ts, end_ts = get_4_weeks_range() + stats = fetch_pageviews(token, start_ts, end_ts, website_id=args.website_id) + filtered_stats = filter_stats_by_existing_services( + stats=stats, + cloud_environment=args.cloud_environment, + environment=args.environment + + ) + + save_to_file(filtered_stats, OUTPUT_FILE) + print(f"Statistics saved in {OUTPUT_FILE}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/stats.json b/tools/stats.json new file mode 100644 index 0000000..2024c8d --- /dev/null +++ b/tools/stats.json @@ -0,0 +1,2002 @@ +[ + { + "x": "/", + "y": 3127 + }, + { + "x": "/additional/faqs/quotas.html", + "y": 592 + }, + { + "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/expanding_capacity_for_an_in-use_evs_disk.html", + "y": 523 + }, + { + "x": "/regions-and-endpoints/index.html", + "y": 282 + }, + { + "x": "/image-management-service/umn/managing_private_images/converting_the_image_format_using_qemu-img.html", + "y": 250 + }, + { + "x": "/elastic-cloud-server/index.html", + "y": 239 + }, + { + "x": "/object-storage-service/index.html", + "y": 233 + }, + { + "x": "/cloud-container-engine/index.html", + "y": 221 + }, + { + "x": "/index.html", + "y": 199 + }, + { + "x": "/cloud-container-engine/umn/", + "y": 196 + }, + { + "x": "/computing.html", + "y": 176 + }, + { + "x": "/elastic-cloud-server/umn/", + "y": 157 + }, + { + "x": "/developer/api.html", + "y": 148 + }, + { + "x": "/identity-access-management/index.html", + "y": 146 + }, + { + "x": "/relational-database-service/index.html", + "y": 143 + }, + { + "x": "/elastic-volume-service/umn/getting_started/initialize_an_evs_data_disk/initializing_a_linux_data_disk_fdisk.html", + "y": 141 + }, + { + "x": "/scalable-file-service/umn/troubleshooting/failed_to_access_the_shared_folder_in_windows.html", + "y": 133 + }, + { + "x": "/relational-database-service/umn/", + "y": 115 + }, + { + "x": "/status-dashboard/index.html", + "y": 105 + }, + { + "x": "/api-usage/index.html", + "y": 99 + }, + { + "x": "/enterprise-dashboard/index.html", + "y": 96 + }, + { + "x": "/elastic-load-balancing/umn/faq/health_checks/how_do_i_troubleshoot_an_unhealthy_backend_server.html", + "y": 95 + }, + { + "x": "/mapreduce-service/operation-guide-lts/using_clickhouse/user_management_and_authentication/configuring_the_password_of_the_default_account_of_a_clickhouse_cluster.html", + "y": 95 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/gpu-accelerated_ecss.html", + "y": 94 + }, + { + "x": "/cloud-backup-recovery/index.html", + "y": 92 + }, + { + "x": "/network.html", + "y": 92 + }, + { + "x": "/elastic-cloud-server/api-ref/", + "y": 89 + }, + { + "x": "/cloud-container-instance/index.html", + "y": 84 + }, + { + "x": "/elastic-load-balancing/index.html", + "y": 84 + }, + { + "x": "/container.html", + "y": 83 + }, + { + "x": "/object-storage-service/umn/", + "y": 82 + }, + { + "x": "/elastic-cloud-server/api-ref/apis_recommended/index.html", + "y": 81 + }, + { + "x": "/api-gateway/index.html", + "y": 81 + }, + { + "x": "/function-graph/index.html", + "y": 79 + }, + { + "x": "/virtual-private-network/index.html", + "y": 79 + }, + { + "x": "/elastic-load-balancing/umn/", + "y": 78 + }, + { + "x": "/cloud-container-engine/api-ref/apis/index.html", + "y": 78 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/index.html", + "y": 77 + }, + { + "x": "/storage.html", + "y": 77 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/general-purpose_ecss.html", + "y": 76 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_types.html", + "y": 74 + }, + { + "x": "/docsportal/network.html", + "y": 74 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/a_summary_list_of_ecs_specifications.html", + "y": 73 + }, + { + "x": "/cloud-container-engine/api-ref/", + "y": 72 + }, + { + "x": "/virtual-private-cloud/index.html", + "y": 72 + }, + { + "x": "/elastic-volume-service/umn/overview/disk_types_and_performance.html", + "y": 72 + }, + { + "x": "/key-management-service/index.html", + "y": 71 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/index.html", + "y": 71 + }, + { + "x": "/cloud-container-engine/umn/faqs/workload/workload_exception_troubleshooting/how_can_i_locate_the_root_cause_if_a_workload_is_abnormal.html", + "y": 70 + }, + { + "x": "/object-storage-service/umn/service_overview/index.html", + "y": 70 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/index.html", + "y": 69 + }, + { + "x": "/cloud-search-service/index.html", + "y": 69 + }, + { + "x": "/cloud-eye/index.html", + "y": 69 + }, + { + "x": "/identity-access-management/api-ref/apis/token_management/obtaining_a_user_token.html", + "y": 68 + }, + { + "x": "/virtual-private-network/umn/", + "y": 67 + }, + { + "x": "/identity-access-management/umn/", + "y": 66 + }, + { + "x": "/function-graph/umn/", + "y": 66 + }, + { + "x": "/scalable-file-service/umn/introduction/what_is_sfs.html", + "y": 66 + }, + { + "x": "/object-storage-service/api-ref/", + "y": 64 + }, + { + "x": "/secure-mail-gateway/umn/additional_info.html", + "y": 63 + }, + { + "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/extending_disk_partitions_and_file_systems_linux/partition_and_file_system_extension_preparations_linux.html", + "y": 63 + }, + { + "x": "/elastic-load-balancing/umn/service_overview/specifications_of_dedicated_load_balancers.html", + "y": 62 + }, + { + "x": "/enterprise-dashboard/umn/", + "y": 62 + }, + { + "x": "/elastic-volume-service/index.html", + "y": 61 + }, + { + "x": "/secure-mail-gateway/umn/setups.html", + "y": 60 + }, + { + "x": "/cloud-container-engine/umn/network/index.html", + "y": 60 + }, + { + "x": "/application-operations-management/index.html", + "y": 60 + }, + { + "x": "/elastic-cloud-server/umn/instances/index.html", + "y": 58 + }, + { + "x": "/distributed-message-service/index.html", + "y": 57 + }, + { + "x": "/object-storage-service/tool-guide/downloading_obs_browser.html", + "y": 57 + }, + { + "x": "/image-management-service/index.html", + "y": 57 + }, + { + "x": "/virtual-private-cloud/umn/", + "y": 57 + }, + { + "x": "/object-storage-service/s3api/", + "y": 56 + }, + { + "x": "/cloud-container-engine/api-ref/apis/cluster_management/index.html", + "y": 56 + }, + { + "x": "/cloud-container-engine/umn/clusters/index.html", + "y": 55 + }, + { + "x": "/cloud-firewall/index.html", + "y": 54 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/what_is_ecs.html", + "y": 54 + }, + { + "x": "/elastic-volume-service/umn/", + "y": 54 + }, + { + "x": "/web-application-firewall/index.html", + "y": 53 + }, + { + "x": "/image-management-service/public-images/", + "y": 53 + }, + { + "x": "/api-usage/guidelines/calling_apis/token_authentication.html", + "y": 52 + }, + { + "x": "/cloud-container-engine/umn/network/service/loadbalancer/creating_a_loadbalancer_service.html", + "y": 51 + }, + { + "x": "/marketplace/umn/seller.html", + "y": 50 + }, + { + "x": "/developer/iac.html", + "y": 50 + }, + { + "x": "/secure-mail-gateway/index.html", + "y": 49 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_an_ssh_key_pair.html", + "y": 49 + }, + { + "x": "/modelarts/index.html", + "y": 49 + }, + { + "x": "/cloud-create/umn/register.html", + "y": 49 + }, + { + "x": "/object-storage-service/umn/obs_console_operation_guide/index.html", + "y": 49 + }, + { + "x": "/cloud-backup-recovery/umn/service_overview/index.html", + "y": 48 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/memory-optimized_ecss.html", + "y": 48 + }, + { + "x": "/cloud-create/umn/service_catalogs/cce.html", + "y": 48 + }, + { + "x": "/cloud-backup-recovery/umn/service_overview/what_is_cbr.html", + "y": 48 + }, + { + "x": "/api-usage/guidelines/overview_of_rest_apis.html", + "y": 48 + }, + { + "x": "/cloud-container-engine/umn/service_overview/index.html", + "y": 47 + }, + { + "x": "/relational-database-service/umn/working_with_rds_for_postgresql/index.html", + "y": 47 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/index.html", + "y": 47 + }, + { + "x": "/identity-access-management/api-ref/", + "y": 46 + }, + { + "x": "/identity-access-management/umn/user_guide/index.html", + "y": 46 + }, + { + "x": "/simple-message-notification/index.html", + "y": 46 + }, + { + "x": "/cloud-backup-recovery/umn/", + "y": 46 + }, + { + "x": "/virtual-private-network/umn/getting_started/index.html", + "y": 46 + }, + { + "x": "/virtual-private-network/umn/overview/index.html", + "y": 46 + }, + { + "x": "/marketplace/index.html", + "y": 46 + }, + { + "x": "/domain-name-service/index.html", + "y": 46 + }, + { + "x": "/cloud-eye/umn/", + "y": 45 + }, + { + "x": "/software-repository-container/index.html", + "y": 45 + }, + { + "x": "/elastic-cloud-server/api-ref/apis_recommended/lifecycle_management/index.html", + "y": 44 + }, + { + "x": "/auto-scaling/index.html", + "y": 44 + }, + { + "x": "/api-usage/guidelines/calling_apis/index.html", + "y": 44 + }, + { + "x": "/direct-connect/umn/getting_started/enabling_direct_connect/connecting_your_on-premises_data_center_to_the_cloud.html", + "y": 44 + }, + { + "x": "/cloud-container-engine/umn/getting_started/index.html", + "y": 44 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/dedicated_general-purpose_ecss.html", + "y": 44 + }, + { + "x": "/key-management-service/umn/service_overview/index.html", + "y": 44 + }, + { + "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/creating_a_cce_standard_turbo_cluster.html", + "y": 44 + }, + { + "x": "/log-tank-service/index.html", + "y": 43 + }, + { + "x": "/domain-name-service/umn/public_zones/configuring_dnssec.html", + "y": 43 + }, + { + "x": "/virtual-private-network/umn/overview/what_is_vpn.html", + "y": 43 + }, + { + "x": "/software-repository-container/umn/", + "y": 43 + }, + { + "x": "/cloud-container-instance/umn/", + "y": 43 + }, + { + "x": "/developer/sdk.html", + "y": 43 + }, + { + "x": "/mapreduce-service/operation-guide/using_clickhouse/migrating_clickhouse_data/using_clickhouse_to_import_and_export_data.html", + "y": 42 + }, + { + "x": "/cloud-create/umn/service_catalogs/openshift.html", + "y": 42 + }, + { + "x": "/elastic-cloud-server/umn/getting_started/initializing_evs_data_disks/initializing_a_windows_data_disk_windows_server_2019.html", + "y": 42 + }, + { + "x": "/cloud-search-service/umn/", + "y": 42 + }, + { + "x": "/developer/sdk/index.html", + "y": 42 + }, + { + "x": "/cloud-container-engine/api-ref/apis/cluster_management/creating_a_cluster.html", + "y": 42 + }, + { + "x": "/key-management-service/umn/", + "y": 41 + }, + { + "x": "/object-storage-service/umn/service_overview/about_obs.html", + "y": 41 + }, + { + "x": "/elastic-load-balancing/umn/load_balancer/index.html", + "y": 41 + }, + { + "x": "/identity-access-management/permissions/", + "y": 41 + }, + { + "x": "/application-service-mesh/index.html", + "y": 41 + }, + { + "x": "/data-lake-insight/index.html", + "y": 41 + }, + { + "x": "/identity-access-management/umn/service_overview/iam_features.html", + "y": 40 + }, + { + "x": "/object-storage-service/s3api/obs_rest_apis/index.html", + "y": 40 + }, + { + "x": "/virtual-private-network/umn/management/index.html", + "y": 40 + }, + { + "x": "/function-graph/api-ref/apis/function_lifecycle_management/creating_a_function.html", + "y": 40 + }, + { + "x": "/elastic-volume-service/umn/service_overview/disk_types_and_performance.html", + "y": 40 + }, + { + "x": "/cloud-container-instance/umn/service_overview/index.html", + "y": 40 + }, + { + "x": "/virtual-private-cloud/umn/vpc_and_subnet/index.html", + "y": 39 + }, + { + "x": "/cloud-trace-service/index.html", + "y": 39 + }, + { + "x": "/relational-database-service/umn/getting_started_with_rds_for_postgresql/index.html", + "y": 39 + }, + { + "x": "/cloud-create/index.html", + "y": 39 + }, + { + "x": "/cloud-create/umn/", + "y": 39 + }, + { + "x": "/host-security-service/index.html", + "y": 39 + }, + { + "x": "/cloud-container-engine/umn/storage/storageclass.html", + "y": 39 + }, + { + "x": "/elastic-cloud-server/api-ref/apis_recommended/lifecycle_management/creating_an_ecs.html", + "y": 39 + }, + { + "x": "/secure-mail-gateway/umn/intro.html", + "y": 39 + }, + { + "x": "/anti-ddos/index.html", + "y": 38 + }, + { + "x": "/secure-mail-gateway/umn/security_mechanisms.html", + "y": 38 + }, + { + "x": "/virtual-private-network/umn/overview/differences_between_enterprise_edition_vpn_and_classic_vpn.html", + "y": 38 + }, + { + "x": "/cloud-container-engine/umn/network/ingresses/overview.html", + "y": 38 + }, + { + "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/index.html", + "y": 37 + }, + { + "x": "/identity-access-management/umn/service_overview/what_is_iam.html", + "y": 37 + }, + { + "x": "/md.html", + "y": 37 + }, + { + "x": "/elastic-cloud-server/umn/getting_started/index.html", + "y": 37 + }, + { + "x": "/taurusdb/index.html", + "y": 37 + }, + { + "x": "/direct-connect/index.html", + "y": 37 + }, + { + "x": "/object-storage-service/api-ref/apis/index.html", + "y": 37 + }, + { + "x": "/web-application-firewall-dedicated/index.html", + "y": 37 + }, + { + "x": "/cloud-container-engine/umn/service_overview/what_is_cce.html", + "y": 37 + }, + { + "x": "/application-performance-management/index.html", + "y": 36 + }, + { + "x": "/virtual-private-cloud/umn/vpc_peering_connection/vpc_peering_connection_usage_examples.html", + "y": 36 + }, + { + "x": "/identity-access-management/permissions/permissions.html", + "y": 36 + }, + { + "x": "/vpc-endpoint/index.html", + "y": 36 + }, + { + "x": "/nat-gateway/index.html", + "y": 36 + }, + { + "x": "/cloud-container-instance/umn/service_overview/overview.html", + "y": 36 + }, + { + "x": "/key-management-service/umn/user_guide/index.html", + "y": 36 + }, + { + "x": "/identity-access-management/umn/getting_started/index.html", + "y": 36 + }, + { + "x": "/mapreduce-service/operation-guide/using_sqoop/common_sqoop_commands_and_parameters.html", + "y": 35 + }, + { + "x": "/web-application-firewall/umn/getting_started/testing_waf.html", + "y": 35 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/concepts/index.html", + "y": 35 + }, + { + "x": "/api-usage/guidelines/calling_apis/ak_sk_authentication/index.html", + "y": 35 + }, + { + "x": "/security-services.html", + "y": 35 + }, + { + "x": "/document-database-service/index.html", + "y": 35 + }, + { + "x": "/cloud-container-engine/umn/network/ingresses/index.html", + "y": 35 + }, + { + "x": "/docsportal/container.html", + "y": 35 + }, + { + "x": "/relational-database-service/api-ref/", + "y": 35 + }, + { + "x": "/relational-database-service/api-ref/api_v3_recommended/index.html", + "y": 35 + }, + { + "x": "/identity-access-management/umn/service_overview/identity_management.html", + "y": 35 + }, + { + "x": "/identity-access-management/api-ref/apis/index.html", + "y": 34 + }, + { + "x": "/web-application-firewall/umn/", + "y": 34 + }, + { + "x": "/identity-access-management/umn/service_overview/index.html", + "y": 34 + }, + { + "x": "/data-warehouse-service/index.html", + "y": 34 + }, + { + "x": "/developer/sdk/third-party-sdk.html", + "y": 34 + }, + { + "x": "/elastic-volume-service/umn/service_overview/index.html", + "y": 34 + }, + { + "x": "/cloud-container-engine/umn/nodes/index.html", + "y": 34 + }, + { + "x": "/enterprise-router/index.html", + "y": 34 + }, + { + "x": "/elastic-cloud-server/api-ref/native_openstack_nova_apis/index.html", + "y": 34 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_windows_ecs/logging_in_to_a_windows_ecs_using_vnc.html", + "y": 34 + }, + { + "x": "/relational-database-service/umn/introduction/db_instance_description/db_instance_classes.html", + "y": 33 + }, + { + "x": "/virtual-private-network/umn/overview/application_scenarios.html", + "y": 33 + }, + { + "x": "/cloud-eye/api-ref/", + "y": 33 + }, + { + "x": "/modelarts/umn/", + "y": 33 + }, + { + "x": "/api-usage/guidelines/calling_apis/obtaining_required_information.html", + "y": 33 + }, + { + "x": "/function-graph/api-ref/", + "y": 33 + }, + { + "x": "/key-management-service/umn/user_guide/key_management/index.html", + "y": 33 + }, + { + "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/index.html", + "y": 33 + }, + { + "x": "/bare-metal-server/index.html", + "y": 33 + }, + { + "x": "/cloud-server-backup-service/umn/service_overview/csbs.html", + "y": 33 + }, + { + "x": "/cloud-search-service/umn/opensearch/opensearch_dashboards/creating_and_authorizing_a_user_on_the_opensearch_dashboards.html", + "y": 33 + }, + { + "x": "/scalable-file-service/index.html", + "y": 33 + }, + { + "x": "/virtual-private-cloud/umn/vpc_and_subnet/vpc/adding_a_secondary_ipv4_cidr_block_to_a_vpc.html", + "y": 33 + }, + { + "x": "/price-calculator/index.html", + "y": 33 + }, + { + "x": "/cloud-backup-recovery/umn/vault_management/index.html", + "y": 32 + }, + { + "x": "/marketplace/umn/customer.html", + "y": 32 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/index.html", + "y": 32 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_overview.html", + "y": 32 + }, + { + "x": "/nat-gateway/umn/", + "y": 32 + }, + { + "x": "/database.html", + "y": 32 + }, + { + "x": "/application-service-mesh/umn/", + "y": 32 + }, + { + "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/creating_a_loadbalancer_ingress_using_kubectl.html", + "y": 31 + }, + { + "x": "/elastic-cloud-server/umn/getting_started/creating_an_ecs/step_1_configure_basic_settings.html", + "y": 31 + }, + { + "x": "/storage-disaster-recovery-service/umn/service_overview/what_is_sdrs.html", + "y": 31 + }, + { + "x": "/distributed-cache-service/index.html", + "y": 31 + }, + { + "x": "/bare-metal-server/image-creation-guide/linux/configuring_the_root_partition_to_be_automatically_extended/centos_7_redhat_7_oracle_linux_7.html", + "y": 31 + }, + { + "x": "/data-arts-studio/index.html", + "y": 31 + }, + { + "x": "/secure-mail-gateway/umn/", + "y": 31 + }, + { + "x": "/elastic-load-balancing/umn/service_overview/index.html", + "y": 31 + }, + { + "x": "/virtual-private-network/umn/management/enterprise_edition_vpn/enterprise_edition_vpn_gateway_management/creating_a_vpn_gateway.html", + "y": 30 + }, + { + "x": "/distributed-message-service/umn/", + "y": 30 + }, + { + "x": "/application-service-mesh/umn/user_guide/index.html", + "y": 30 + }, + { + "x": "/price-calculator/api-ref/", + "y": 30 + }, + { + "x": "/api-usage/guidelines/", + "y": 30 + }, + { + "x": "/object-storage-service/api-ref/api_overview.html", + "y": 30 + }, + { + "x": "/object-storage-service/umn/faq/index.html", + "y": 30 + }, + { + "x": "/cloud-container-engine/umn/best_practice/index.html", + "y": 29 + }, + { + "x": "/cloud-container-engine/umn/clusters/upgrading_a_cluster/index.html", + "y": 29 + }, + { + "x": "/api-gateway/umn/", + "y": 29 + }, + { + "x": "/marketplace/umn/", + "y": 29 + }, + { + "x": "/identity-access-management/umn/user_guide/permissions/creating_a_custom_policy.html", + "y": 29 + }, + { + "x": "/docsportal/storage.html", + "y": 29 + }, + { + "x": "/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html", + "y": 29 + }, + { + "x": "/nat-gateway/umn/service_overview/what_is_nat_gateway.html", + "y": 29 + }, + { + "x": "/elastic-volume-service/api-ref/", + "y": 29 + }, + { + "x": "/volume-backup-service/umn/service_overview/vbs.html", + "y": 29 + }, + { + "x": "/virtual-private-network/umn/management/enterprise_edition_vpn/index.html", + "y": 29 + }, + { + "x": "/image-management-service/umn/windows_operations/installing_and_configuring_cloudbase-init.html", + "y": 29 + }, + { + "x": "/api-usage/guidelines/overview.html", + "y": 28 + }, + { + "x": "/virtual-private-network/umn/getting_started/classic_vpn/creating_a_vpn.html", + "y": 28 + }, + { + "x": "/domain-name-service/umn/", + "y": 28 + }, + { + "x": "/virtual-private-cloud/umn/service_overview/what_is_virtual_private_cloud.html", + "y": 28 + }, + { + "x": "/elastic-cloud-server/api-ref/api_usage_guidelines.html", + "y": 28 + }, + { + "x": "/function-graph/umn/building_functions/index.html", + "y": 28 + }, + { + "x": "/enterprise-dashboard/umn/introduction.html", + "y": 28 + }, + { + "x": "/cloud-container-engine/umn/storage/index.html", + "y": 28 + }, + { + "x": "/image-management-service/umn/", + "y": 28 + }, + { + "x": "/cloud-container-engine/api-ref/api_usage_guidelines.html", + "y": 28 + }, + { + "x": "/cloud-eye/api-ref/api_description/monitoring_data/querying_monitoring_data_of_a_metric.html", + "y": 28 + }, + { + "x": "/data-replication-service/index.html", + "y": 28 + }, + { + "x": "/identity-access-management/umn/faqs/how_do_i_obtain_mfa_verification_codes.html", + "y": 28 + }, + { + "x": "/virtual-private-cloud/umn/service_overview/index.html", + "y": 28 + }, + { + "x": "/secure-mail-gateway/umn/installation.html", + "y": 28 + }, + { + "x": "/cloud-container-instance/umn/container_group/index.html", + "y": 28 + }, + { + "x": "/dedicated-host/index.html", + "y": 27 + }, + { + "x": "/enterprise-dashboard/api-ref/v2/index.html", + "y": 27 + }, + { + "x": "/identity-access-management/umn/user_guide/mfa_authentication_and_virtual_mfa_device.html", + "y": 27 + }, + { + "x": "/elastic-volume-service/umn/service_overview/disk_encryption.html", + "y": 27 + }, + { + "x": "/docsportal/database.html", + "y": 27 + }, + { + "x": "/direct-connect/umn/service_overview/direct_connect.html", + "y": 27 + }, + { + "x": "/cloud-eye/api-ref/api_description/index.html", + "y": 27 + }, + { + "x": "/virtual-private-cloud/api-ref/", + "y": 27 + }, + { + "x": "/elastic-load-balancing/api-ref/", + "y": 27 + }, + { + "x": "/cloud-container-engine/umn/storage/storage_basics.html", + "y": 27 + }, + { + "x": "/cloud-container-instance/umn/service_overview/constraints.html", + "y": 27 + }, + { + "x": "/enterprise-dashboard/umn/database_tables.html", + "y": 27 + }, + { + "x": "/cloud-container-engine/umn/network/container_network/overview.html", + "y": 27 + }, + { + "x": "/direct-connect/umn/service_overview/index.html", + "y": 26 + }, + { + "x": "/cloud-container-engine/umn/service_overview/notes_and_constraints.html", + "y": 26 + }, + { + "x": "/cloud-container-engine/umn/getting_started/creating_a_kubernetes_cluster.html", + "y": 26 + }, + { + "x": "/object-storage-service/umn/obs_browser_operation_guide/getting_started/creating_access_keys_ak_and_sk.html", + "y": 26 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/login_overview_linux.html", + "y": 26 + }, + { + "x": "/object-storage-service/s3api/operations_on_buckets/index.html", + "y": 26 + }, + { + "x": "/cloud-container-engine/umn/workloads/index.html", + "y": 26 + }, + { + "x": "/object-storage-service/s3api/introduction/index.html", + "y": 26 + }, + { + "x": "/elastic-volume-service/umn/service_overview/what_is_evs.html", + "y": 26 + }, + { + "x": "/virtual-private-cloud/api-ref/apis/subnet/creating_a_subnet.html", + "y": 26 + }, + { + "x": "/api-gateway/api-ref/dedicated_gateway_apis_v2/request_throttling_policy_management/creating_a_request_throttling_policy.html", + "y": 26 + }, + { + "x": "/elastic-cloud-server/umn/monitoring_using_cloud_eye/basic_ecs_metrics.html", + "y": 26 + }, + { + "x": "/identity-access-management/mycredential/how_do_i_manage_access_keys.html", + "y": 26 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/concepts/kms.html", + "y": 26 + }, + { + "x": "/cloud-server-backup-service/index.html", + "y": 26 + }, + { + "x": "/api-gateway/api-ref/", + "y": 26 + }, + { + "x": "/cloud-create/umn/service_catalogs/index.html", + "y": 26 + }, + { + "x": "/function-graph/api-ref/apis/index.html", + "y": 26 + }, + { + "x": "/virtual-private-cloud/umn/vpc_and_subnet/vpc/index.html", + "y": 26 + }, + { + "x": "/elastic-cloud-server/umn/images/index.html", + "y": 26 + }, + { + "x": "/relational-database-service/umn/faqs/index.html", + "y": 26 + }, + { + "x": "/virtual-private-cloud/umn/access_control/security_group/security_group_configuration_examples.html", + "y": 26 + }, + { + "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/overview.html", + "y": 26 + }, + { + "x": "/api-gateway/umn/service_overview/what_is_apig.html", + "y": 26 + }, + { + "x": "/elastic-ip/index.html", + "y": 25 + }, + { + "x": "/cloud-eye/umn/server_monitoring/installing_and_configuring_the_agent_on_a_linux_ecs_or_bms/modifying_the_dns_server_address_and_adding_security_group_rules_linux.html", + "y": 25 + }, + { + "x": "/image-management-service/umn/managing_private_images/exporting_an_image.html", + "y": 25 + }, + { + "x": "/relational-database-service/umn/best_practices/index.html", + "y": 25 + }, + { + "x": "/cloud-container-engine/umn/node_pools/index.html", + "y": 25 + }, + { + "x": "/virtual-private-network/umn/faqs/enterprise_edition_vpn/index.html", + "y": 25 + }, + { + "x": "/elastic-cloud-server/umn/passwords_and_key_pairs/key_pairs/obtaining_and_deleting_the_password_of_a_windows_ecs/obtaining_the_password_for_logging_in_to_a_windows_ecs.html", + "y": 25 + }, + { + "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/comparison_between_cluster_types.html", + "y": 25 + }, + { + "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/cloud_native_cluster_monitoring.html", + "y": 25 + }, + { + "x": "/geminidb/index.html", + "y": 25 + }, + { + "x": "/api-usage/guidelines/index.html", + "y": 25 + }, + { + "x": "/image-management-service/umn/creating_a_private_image/index.html", + "y": 25 + }, + { + "x": "/simple-message-notification/umn/", + "y": 25 + }, + { + "x": "/cloud-eye/umn/server_monitoring/index.html", + "y": 25 + }, + { + "x": "/host-security-service/umn/", + "y": 25 + }, + { + "x": "/domain-name-service/umn/public_zones/creating_a_public_zone.html", + "y": 25 + }, + { + "x": "/elastic-load-balancing/umn/backend_server_dedicated_load_balancers/configuring_security_group_and_firewall_rules.html", + "y": 24 + }, + { + "x": "/big_data.html", + "y": 24 + }, + { + "x": "/cloud-backup-recovery/api-ref/cbr_apis/index.html", + "y": 24 + }, + { + "x": "/function-graph/umn/configuring_functions/index.html", + "y": 24 + }, + { + "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/extending_disk_partitions_and_file_systems_linux/extending_partitions_and_file_systems_for_system_disks_linux.html", + "y": 24 + }, + { + "x": "/cloud-container-instance/umn/service_overview/basic_concepts.html", + "y": 24 + }, + { + "x": "/cloud-container-instance/umn/environment_configuration.html", + "y": 24 + }, + { + "x": "/identity-access-management/umn/getting_started/logging_in_as_an_iam_user.html", + "y": 24 + }, + { + "x": "/virtual-private-network/api-ref/", + "y": 24 + }, + { + "x": "/key-management-service/umn/user_guide/key_management/rotating_cmks/key_rotation_overview.html", + "y": 24 + }, + { + "x": "/identity-access-management/umn/user_guide/identity_providers/syntax_of_identity_conversion_rules.html", + "y": 24 + }, + { + "x": "/scalable-file-service/umn/", + "y": 24 + }, + { + "x": "/security/index.html", + "y": 24 + }, + { + "x": "/cloud-container-engine/api-ref/kubernetes_apis/index.html", + "y": 24 + }, + { + "x": "/software-repository-container/umn/image_management/index.html", + "y": 24 + }, + { + "x": "/cloud-container-instance/umn/service_overview/permissions_management.html", + "y": 24 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_an_ssh_password.html", + "y": 24 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/concepts/hsm.html", + "y": 23 + }, + { + "x": "/object-storage-service/api-ref/apis/operations_on_buckets/index.html", + "y": 23 + }, + { + "x": "/dedicated-host/umn/product_introduction/index.html", + "y": 23 + }, + { + "x": "/elastic-load-balancing/umn/load_balancer/creating_a_dedicated_load_balancer.html", + "y": 23 + }, + { + "x": "/software-repository-container/umn/service_overview/index.html", + "y": 23 + }, + { + "x": "/elastic-cloud-server/dev-guide/", + "y": 23 + }, + { + "x": "/document-database-service/api-ref/appendix/error_code.html", + "y": 23 + }, + { + "x": "/cloud-container-engine/api-ref/apis/cluster_management/creating_a_node_pool.html", + "y": 23 + }, + { + "x": "/elastic-volume-service/umn/changing_the_evs_disk_type_beta.html", + "y": 23 + }, + { + "x": "/cloud-firewall/umn/", + "y": 23 + }, + { + "x": "/elastic-load-balancing/api-ref/apis_v2.0/index.html", + "y": 23 + }, + { + "x": "/tag-management-service/api-ref/", + "y": 23 + }, + { + "x": "/virtual-private-cloud/api-ref/apis/index.html", + "y": 23 + }, + { + "x": "/key-management-service/api-ref/", + "y": 23 + }, + { + "x": "/identity-access-management/umn/user_guide/iam_users/index.html", + "y": 23 + }, + { + "x": "/elastic-cloud-server/umn/getting_started/creating_an_ecs/index.html", + "y": 23 + }, + { + "x": "/object-storage-service/s3api/obs_rest_apis/authenticating_a_request/index.html", + "y": 23 + }, + { + "x": "/direct-connect/umn/service_overview/application_scenarios.html", + "y": 23 + }, + { + "x": "/cloud-backup-recovery/api-ref/", + "y": 23 + }, + { + "x": "/cloud-container-engine/umn/node_pools/creating_a_node_pool.html", + "y": 23 + }, + { + "x": "/cloud-container-engine/umn/best_practice/devops/interconnecting_gitlab_with_swr_and_cce_for_ci_cd.html", + "y": 23 + }, + { + "x": "/cloud-create/umn/service_catalogs/nextcloud.html", + "y": 23 + }, + { + "x": "/cloud-container-engine/umn/clusters/cluster_overview.html", + "y": 23 + }, + { + "x": "/cloud-container-engine/umn/add-ons/container_network_add-ons/nginx_ingress_controller.html", + "y": 23 + }, + { + "x": "/cloud-container-engine/umn/storage/scalable_file_service/using_an_existing_sfs_file_system_through_a_static_pv.html", + "y": 23 + }, + { + "x": "/log-tank-service/umn/", + "y": 23 + }, + { + "x": "/software-repository-container/umn/permissions_management/index.html", + "y": 23 + }, + { + "x": "/bare-metal-server/image-creation-guide/linux/installing_cloud-init/suse_red_hat_centos_oracle_linux_ubuntu_debian.html", + "y": 22 + }, + { + "x": "/virtual-private-network/umn/overview/product_specifications.html", + "y": 22 + }, + { + "x": "/elastic-cloud-server/umn/faqs/file_upload_data_transfer/why_am_i_seeing_an_ftp_folder_error_when_i_open_a_folder_on_an_ftp_server.html", + "y": 22 + }, + { + "x": "/virtual-private-network/umn/overview/product_advantages.html", + "y": 22 + }, + { + "x": "/elastic-cloud-server/umn/faqs/index.html", + "y": 22 + }, + { + "x": "/object-storage-service/umn/obs_console_operation_guide/versioning/versioning_overview.html", + "y": 22 + }, + { + "x": "/elastic-cloud-server/umn/getting_started/logging_in_to_an_ecs.html", + "y": 22 + }, + { + "x": "/software-repository-container/umn/image_management/obtaining_a_long-term_valid_docker_login_command.html", + "y": 22 + }, + { + "x": "/elastic-load-balancing/umn/service_overview/differences_between_dedicated_and_shared_load_balancers.html", + "y": 22 + }, + { + "x": "/scalable-file-service/api-ref/", + "y": 22 + }, + { + "x": "/elastic-load-balancing/api-ref/apis_v3/index.html", + "y": 22 + }, + { + "x": "/elastic-cloud-server/umn/elastic_network_interfaces/index.html", + "y": 22 + }, + { + "x": "/cloud-container-instance/api-ref/", + "y": 22 + }, + { + "x": "/object-storage-service/umn/service_overview/basic_concepts/access_keys_ak_sk.html", + "y": 22 + }, + { + "x": "/elastic-volume-service/umn/overview/what_is_evs.html", + "y": 22 + }, + { + "x": "/cloud-container-engine/umn/nodes/creating_a_node.html", + "y": 22 + }, + { + "x": "/web-application-firewall-dedicated/umn/", + "y": 22 + }, + { + "x": "/relational-database-service/api-ref/api_v3_recommended/querying_database_specifications.html", + "y": 22 + }, + { + "x": "/function-graph/umn/building_functions/creating_a_deployment_package.html", + "y": 22 + }, + { + "x": "/additional/faqs/index.html", + "y": 22 + }, + { + "x": "/object-storage-service/tool-guide/logging_in_to_obs_browser.html", + "y": 22 + }, + { + "x": "/application-service-mesh/umn/service_overview/index.html", + "y": 22 + }, + { + "x": "/cloud-eye/umn/product_introduction/what_is_cloud_eye.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/best_practices/rds_for_postgresql/security_best_practices.html", + "y": 21 + }, + { + "x": "/key-management-service/umn/faqs/index.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/working_with_rds_for_postgresql/plugin_management/supported_plugins.html", + "y": 21 + }, + { + "x": "/developer/drivers.html", + "y": 21 + }, + { + "x": "/direct-connect/umn/getting_started/index.html", + "y": 21 + }, + { + "x": "/elastic-volume-service/umn/managing_encrypted_evs_disks.html", + "y": 21 + }, + { + "x": "/mapreduce-service/operation-guide/using_hudi/common_issues_about_hudi/data_write/hudi_fails_to_write_decimal_data_with_lower_precision.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/introduction/index.html", + "y": 21 + }, + { + "x": "/cloud-container-instance/umn/container_group/creating_a_container_group.html", + "y": 21 + }, + { + "x": "/cloud-eye/umn/services_interconnected_with_cloud_eye.html", + "y": 21 + }, + { + "x": "/log-tank-service/api-ref/", + "y": 21 + }, + { + "x": "/cloud-container-engine/umn/add-ons/scheduling_and_elasticity_add-ons/cce_cluster_autoscaler.html", + "y": 21 + }, + { + "x": "/mapreduce-service/index.html", + "y": 21 + }, + { + "x": "/elastic-load-balancing/umn/listener/index.html", + "y": 21 + }, + { + "x": "/vpc-endpoint/umn/", + "y": 21 + }, + { + "x": "/elastic-volume-service/api-ref/apis_recommended/index.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/introduction/product_release_notes/rds_for_postgresql_versioning_policy.html", + "y": 21 + }, + { + "x": "/enterprise-dashboard/api-ref/", + "y": 21 + }, + { + "x": "/config/index.html", + "y": 21 + }, + { + "x": "/nat-gateway/umn/service_overview/index.html", + "y": 21 + }, + { + "x": "/domain-name-service/umn/overview/index.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/best_practices/rds_for_postgresql/index.html", + "y": 21 + }, + { + "x": "/api-gateway/umn/api_policies/request_throttling_2.0.html", + "y": 21 + }, + { + "x": "/log-tank-service/umn/log_ingestion/index.html", + "y": 21 + }, + { + "x": "/host-security-service/umn/introduction/what_is_hss.html", + "y": 21 + }, + { + "x": "/cloud-search-service/api-ref/", + "y": 21 + }, + { + "x": "/identity-access-management/api-ref/apis/token_management/index.html", + "y": 21 + }, + { + "x": "/cloud-container-engine/api-ref/apis/cluster_management/listing_clusters_in_a_specified_project.html", + "y": 21 + }, + { + "x": "/elastic-cloud-server/umn/instances/managing_gpu_drivers_of_gpu-accelerated_ecss/manually_installing_a_grid_driver_on_a_gpu-accelerated_ecs.html", + "y": 21 + }, + { + "x": "/relational-database-service/umn/getting_started_with_rds_for_postgresql/step_1_create_a_db_instance.html", + "y": 21 + }, + { + "x": "/cloud-container-engine/umn/high-risk_operations.html", + "y": 21 + }, + { + "x": "/elastic-volume-service/umn/overview/index.html", + "y": 21 + }, + { + "x": "/cloud-container-engine/umn/add-ons/container_storage_add-ons/cce_container_storage_everest.html", + "y": 20 + }, + { + "x": "/cloud-container-engine/umn/clusters/upgrading_a_cluster/cluster_upgrade_overview.html", + "y": 20 + }, + { + "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/step_1_creating_a_vpn_gateway.html", + "y": 20 + }, + { + "x": "/direct-connect/umn/service_overview/basic_concepts/connections.html", + "y": 20 + }, + { + "x": "/volume-backup-service/index.html", + "y": 20 + }, + { + "x": "/cloud-container-instance/umn/configuration_center/index.html", + "y": 20 + }, + { + "x": "/elastic-ip/umn/", + "y": 20 + }, + { + "x": "/cloud-container-engine/umn/product_bulletin/index.html", + "y": 20 + }, + { + "x": "/cloud-backup-recovery/umn/getting_started/index.html", + "y": 20 + }, + { + "x": "/function-graph/umn/creating_triggers/index.html", + "y": 20 + }, + { + "x": "/direct-connect/umn/getting_started/enabling_direct_connect/index.html", + "y": 20 + }, + { + "x": "/distributed-database-middleware/index.html", + "y": 20 + }, + { + "x": "/identity-access-management/umn/user_guide/security_settings/index.html", + "y": 20 + }, + { + "x": "/function-graph/umn/configuring_functions/configuring_agency_permissions.html", + "y": 20 + }, + { + "x": "/object-storage-service/s3api/obs_rest_apis/locating_a_resource.html", + "y": 20 + }, + { + "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/index.html", + "y": 20 + }, + { + "x": "/data-lake-insight/umn/", + "y": 20 + }, + { + "x": "/cloud-eye/api-ref/api_description/monitoring_data/index.html", + "y": 20 + }, + { + "x": "/elastic-load-balancing/umn/service_overview/what_is_elb.html", + "y": 20 + }, + { + "x": "/developer/index.html", + "y": 20 + }, + { + "x": "/relational-database-service/umn/getting_started_with_rds_for_mysql/index.html", + "y": 20 + }, + { + "x": "/cloud-container-instance/umn/namespaces/creating_a_namespace.html", + "y": 20 + }, + { + "x": "/distributed-message-service/umn/service_overview/index.html", + "y": 20 + }, + { + "x": "/domain-name-service/umn/public_zones/index.html", + "y": 20 + }, + { + "x": "/key-management-service/api-ref/apis/index.html", + "y": 20 + }, + { + "x": "/data-replication-service/umn/real-time_synchronization/to_the_cloud/from_postgresql_to_postgresql.html", + "y": 20 + }, + { + "x": "/cloud-container-instance/umn/service_overview/application_scenarios.html", + "y": 20 + }, + { + "x": "/cloud-trace-service/umn/user_guide/supported_services_and_operations.html", + "y": 20 + }, + { + "x": "/cloud-container-engine/umn/getting_started/deploying_a_deployment_nginx.html", + "y": 20 + }, + { + "x": "/cloud-eye/api-ref/api_description/metrics/querying_metrics.html", + "y": 20 + }, + { + "x": "/image-management-service/umn/overview/index.html", + "y": 20 + }, + { + "x": "/distributed-cache-service/umn/service_overview/dcs_instance_specifications/redis_4.0_and_5.0_instance_specifications.html", + "y": 20 + }, + { + "x": "/dedicated-host/umn/", + "y": 19 + }, + { + "x": "/optical-character-recognition/index.html", + "y": 19 + }, + { + "x": "/gaussdb-opengauss/umn/getting_started/connecting_to_a_db_instance_using_a_driver/using_jdbc_to_connect_to_a_database.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/network/service/index.html", + "y": 19 + }, + { + "x": "/domain-name-service/umn/getting_started/index.html", + "y": 19 + }, + { + "x": "/image-management-service/umn/creating_a_private_image/creating_a_windows_system_disk_image_from_an_iso_file/overview.html", + "y": 19 + }, + { + "x": "/elastic-ip/umn/service_overview/index.html", + "y": 19 + }, + { + "x": "/virtual-private-cloud/api-ref/api_v3/index.html", + "y": 19 + }, + { + "x": "/domain-name-service/umn/overview/public_domain_name_resolution.html", + "y": 19 + }, + { + "x": "/nat-gateway/umn/service_overview/nat_gateway_specifications.html", + "y": 19 + }, + { + "x": "/relational-database-service/api-ref/api_v3_recommended/db_instance_management/index.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/network/service/loadbalancer/index.html", + "y": 19 + }, + { + "x": "/cloud-create/umn/service_catalogs/argocd.html", + "y": 19 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/concepts/dek.html", + "y": 19 + }, + { + "x": "/key-management-service/umn/service_overview/key_management/concepts/cmk.html", + "y": 19 + }, + { + "x": "/host-security-service/umn/introduction/index.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/cloud_native_log_collection.html", + "y": 19 + }, + { + "x": "/auto-scaling/umn/", + "y": 19 + }, + { + "x": "/elastic-volume-service/umn/getting_started/creating_an_evs_disk.html", + "y": 19 + }, + { + "x": "/data-warehouse-service/api-ref/", + "y": 19 + }, + { + "x": "/identity-access-management/umn/service_overview/permissions_management.html", + "y": 19 + }, + { + "x": "/cloud-create/api-ref/auth.html", + "y": 19 + }, + { + "x": "/identity-access-management/api-ref/api_overview.html", + "y": 19 + }, + { + "x": "/modelarts/umn/inference_deployment/managing_ai_applications/creating_an_ai_application/importing_a_meta_model_from_obs.html", + "y": 19 + }, + { + "x": "/object-storage-service/api-ref/calling_apis/index.html", + "y": 19 + }, + { + "x": "/object-storage-service/s3api/introduction/compatibility_of_obs_rest_apis.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/faqs/index.html", + "y": 19 + }, + { + "x": "/direct-connect/umn/", + "y": 19 + }, + { + "x": "/private-link-access-service/index.html", + "y": 19 + }, + { + "x": "/anti-ddos/umn/", + "y": 19 + }, + { + "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_vnc.html", + "y": 19 + }, + { + "x": "/elastic-cloud-server/api-ref/apis_recommended/status_management/index.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/o_and_m/o_and_m_best_practices/monitoring_custom_metrics_using_cloud_native_cluster_monitoring.html", + "y": 19 + }, + { + "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/advanced_setting_examples_of_loadbalancer_ingresses/configuring_advanced_forwarding_actions_for_a_loadbalancer_ingress.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/network/container_network/index.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/change_history.html", + "y": 18 + }, + { + "x": "/object-storage-service/tool-guide/", + "y": 18 + }, + { + "x": "/simple-message-notification/api-ref/apis/index.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/storage/object_storage_service/using_an_existing_obs_bucket_through_a_static_pv.html", + "y": 18 + }, + { + "x": "/identity-access-management/umn/faqs/index.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/getting_started/introduction.html", + "y": 18 + }, + { + "x": "/resource-formation-service/index.html", + "y": 18 + }, + { + "x": "/elastic-cloud-server/umn/disks/index.html", + "y": 18 + }, + { + "x": "/private-link-access-service/umn/faqs/service_levels/what_about_service_level_agreements_slas.html", + "y": 18 + }, + { + "x": "/web-application-firewall-dedicated/umn/applying_for_a_cloud_waf_instance.html", + "y": 18 + }, + { + "x": "/cloud-container-instance/umn/namespaces/index.html", + "y": 18 + }, + { + "x": "/elastic-volume-service/api-ref/apis_recommended/disk_management/index.html", + "y": 18 + }, + { + "x": "/virtual-private-network/umn/faqs/index.html", + "y": 18 + }, + { + "x": "/api-usage/guidelines/calling_apis/ak_sk_authentication/signing_a_request.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/kubernetes_metrics_server.html", + "y": 18 + }, + { + "x": "/image-management-service/umn/linux_operations/installing_cloud-init.html", + "y": 18 + }, + { + "x": "/cloud-container-engine/umn/workloads/creating_a_workload/index.html", + "y": 18 + }, + { + "x": "/object-storage-service/api-ref/apis/operations_on_objects/index.html", + "y": 18 + }, + { + "x": "/elastic-cloud-server/umn/using_iam_to_grant_access_to_ecs/index.html", + "y": 18 + }, + { + "x": "/enterprise-dashboard/umn/howto.html", + "y": 18 + }, + { + "x": "/image-management-service/api-ref/ims_apis/index.html", + "y": 18 + }, + { + "x": "/web-application-firewall-dedicated/api-ref/apis/index.html", + "y": 18 + }, + { + "x": "/log-tank-service/api-ref/apis/index.html", + "y": 18 + }, + { + "x": "/distributed-message-service/umn/getting_started/getting_started_with_kafka_for_message_production_and_consumption.html", + "y": 18 + }, + { + "x": "/virtual-private-cloud/umn/access_control/security_group/security_groups_and_security_group_rules.html", + "y": 18 + }, + { + "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_lifecycle.html", + "y": 18 + }, + { + "x": "/object-storage-service/s3api/obs_rest_apis/authenticating_a_request/v4_common_request.html", + "y": 18 + } +] \ No newline at end of file -- 2.34.1 From 50a11560c1fd9af067a3df36f4ca1972a8c7153c Mon Sep 17 00:00:00 2001 From: tischrei Date: Mon, 4 Aug 2025 10:30:10 +0000 Subject: [PATCH 2/7] rm test file --- tools/stats.json | 2002 ---------------------------------------------- 1 file changed, 2002 deletions(-) delete mode 100644 tools/stats.json diff --git a/tools/stats.json b/tools/stats.json deleted file mode 100644 index 2024c8d..0000000 --- a/tools/stats.json +++ /dev/null @@ -1,2002 +0,0 @@ -[ - { - "x": "/", - "y": 3127 - }, - { - "x": "/additional/faqs/quotas.html", - "y": 592 - }, - { - "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/expanding_capacity_for_an_in-use_evs_disk.html", - "y": 523 - }, - { - "x": "/regions-and-endpoints/index.html", - "y": 282 - }, - { - "x": "/image-management-service/umn/managing_private_images/converting_the_image_format_using_qemu-img.html", - "y": 250 - }, - { - "x": "/elastic-cloud-server/index.html", - "y": 239 - }, - { - "x": "/object-storage-service/index.html", - "y": 233 - }, - { - "x": "/cloud-container-engine/index.html", - "y": 221 - }, - { - "x": "/index.html", - "y": 199 - }, - { - "x": "/cloud-container-engine/umn/", - "y": 196 - }, - { - "x": "/computing.html", - "y": 176 - }, - { - "x": "/elastic-cloud-server/umn/", - "y": 157 - }, - { - "x": "/developer/api.html", - "y": 148 - }, - { - "x": "/identity-access-management/index.html", - "y": 146 - }, - { - "x": "/relational-database-service/index.html", - "y": 143 - }, - { - "x": "/elastic-volume-service/umn/getting_started/initialize_an_evs_data_disk/initializing_a_linux_data_disk_fdisk.html", - "y": 141 - }, - { - "x": "/scalable-file-service/umn/troubleshooting/failed_to_access_the_shared_folder_in_windows.html", - "y": 133 - }, - { - "x": "/relational-database-service/umn/", - "y": 115 - }, - { - "x": "/status-dashboard/index.html", - "y": 105 - }, - { - "x": "/api-usage/index.html", - "y": 99 - }, - { - "x": "/enterprise-dashboard/index.html", - "y": 96 - }, - { - "x": "/elastic-load-balancing/umn/faq/health_checks/how_do_i_troubleshoot_an_unhealthy_backend_server.html", - "y": 95 - }, - { - "x": "/mapreduce-service/operation-guide-lts/using_clickhouse/user_management_and_authentication/configuring_the_password_of_the_default_account_of_a_clickhouse_cluster.html", - "y": 95 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/gpu-accelerated_ecss.html", - "y": 94 - }, - { - "x": "/cloud-backup-recovery/index.html", - "y": 92 - }, - { - "x": "/network.html", - "y": 92 - }, - { - "x": "/elastic-cloud-server/api-ref/", - "y": 89 - }, - { - "x": "/cloud-container-instance/index.html", - "y": 84 - }, - { - "x": "/elastic-load-balancing/index.html", - "y": 84 - }, - { - "x": "/container.html", - "y": 83 - }, - { - "x": "/object-storage-service/umn/", - "y": 82 - }, - { - "x": "/elastic-cloud-server/api-ref/apis_recommended/index.html", - "y": 81 - }, - { - "x": "/api-gateway/index.html", - "y": 81 - }, - { - "x": "/function-graph/index.html", - "y": 79 - }, - { - "x": "/virtual-private-network/index.html", - "y": 79 - }, - { - "x": "/elastic-load-balancing/umn/", - "y": 78 - }, - { - "x": "/cloud-container-engine/api-ref/apis/index.html", - "y": 78 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/index.html", - "y": 77 - }, - { - "x": "/storage.html", - "y": 77 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/general-purpose_ecss.html", - "y": 76 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_types.html", - "y": 74 - }, - { - "x": "/docsportal/network.html", - "y": 74 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/a_summary_list_of_ecs_specifications.html", - "y": 73 - }, - { - "x": "/cloud-container-engine/api-ref/", - "y": 72 - }, - { - "x": "/virtual-private-cloud/index.html", - "y": 72 - }, - { - "x": "/elastic-volume-service/umn/overview/disk_types_and_performance.html", - "y": 72 - }, - { - "x": "/key-management-service/index.html", - "y": 71 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/index.html", - "y": 71 - }, - { - "x": "/cloud-container-engine/umn/faqs/workload/workload_exception_troubleshooting/how_can_i_locate_the_root_cause_if_a_workload_is_abnormal.html", - "y": 70 - }, - { - "x": "/object-storage-service/umn/service_overview/index.html", - "y": 70 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/index.html", - "y": 69 - }, - { - "x": "/cloud-search-service/index.html", - "y": 69 - }, - { - "x": "/cloud-eye/index.html", - "y": 69 - }, - { - "x": "/identity-access-management/api-ref/apis/token_management/obtaining_a_user_token.html", - "y": 68 - }, - { - "x": "/virtual-private-network/umn/", - "y": 67 - }, - { - "x": "/identity-access-management/umn/", - "y": 66 - }, - { - "x": "/function-graph/umn/", - "y": 66 - }, - { - "x": "/scalable-file-service/umn/introduction/what_is_sfs.html", - "y": 66 - }, - { - "x": "/object-storage-service/api-ref/", - "y": 64 - }, - { - "x": "/secure-mail-gateway/umn/additional_info.html", - "y": 63 - }, - { - "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/extending_disk_partitions_and_file_systems_linux/partition_and_file_system_extension_preparations_linux.html", - "y": 63 - }, - { - "x": "/elastic-load-balancing/umn/service_overview/specifications_of_dedicated_load_balancers.html", - "y": 62 - }, - { - "x": "/enterprise-dashboard/umn/", - "y": 62 - }, - { - "x": "/elastic-volume-service/index.html", - "y": 61 - }, - { - "x": "/secure-mail-gateway/umn/setups.html", - "y": 60 - }, - { - "x": "/cloud-container-engine/umn/network/index.html", - "y": 60 - }, - { - "x": "/application-operations-management/index.html", - "y": 60 - }, - { - "x": "/elastic-cloud-server/umn/instances/index.html", - "y": 58 - }, - { - "x": "/distributed-message-service/index.html", - "y": 57 - }, - { - "x": "/object-storage-service/tool-guide/downloading_obs_browser.html", - "y": 57 - }, - { - "x": "/image-management-service/index.html", - "y": 57 - }, - { - "x": "/virtual-private-cloud/umn/", - "y": 57 - }, - { - "x": "/object-storage-service/s3api/", - "y": 56 - }, - { - "x": "/cloud-container-engine/api-ref/apis/cluster_management/index.html", - "y": 56 - }, - { - "x": "/cloud-container-engine/umn/clusters/index.html", - "y": 55 - }, - { - "x": "/cloud-firewall/index.html", - "y": 54 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/what_is_ecs.html", - "y": 54 - }, - { - "x": "/elastic-volume-service/umn/", - "y": 54 - }, - { - "x": "/web-application-firewall/index.html", - "y": 53 - }, - { - "x": "/image-management-service/public-images/", - "y": 53 - }, - { - "x": "/api-usage/guidelines/calling_apis/token_authentication.html", - "y": 52 - }, - { - "x": "/cloud-container-engine/umn/network/service/loadbalancer/creating_a_loadbalancer_service.html", - "y": 51 - }, - { - "x": "/marketplace/umn/seller.html", - "y": 50 - }, - { - "x": "/developer/iac.html", - "y": 50 - }, - { - "x": "/secure-mail-gateway/index.html", - "y": 49 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_an_ssh_key_pair.html", - "y": 49 - }, - { - "x": "/modelarts/index.html", - "y": 49 - }, - { - "x": "/cloud-create/umn/register.html", - "y": 49 - }, - { - "x": "/object-storage-service/umn/obs_console_operation_guide/index.html", - "y": 49 - }, - { - "x": "/cloud-backup-recovery/umn/service_overview/index.html", - "y": 48 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/memory-optimized_ecss.html", - "y": 48 - }, - { - "x": "/cloud-create/umn/service_catalogs/cce.html", - "y": 48 - }, - { - "x": "/cloud-backup-recovery/umn/service_overview/what_is_cbr.html", - "y": 48 - }, - { - "x": "/api-usage/guidelines/overview_of_rest_apis.html", - "y": 48 - }, - { - "x": "/cloud-container-engine/umn/service_overview/index.html", - "y": 47 - }, - { - "x": "/relational-database-service/umn/working_with_rds_for_postgresql/index.html", - "y": 47 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/index.html", - "y": 47 - }, - { - "x": "/identity-access-management/api-ref/", - "y": 46 - }, - { - "x": "/identity-access-management/umn/user_guide/index.html", - "y": 46 - }, - { - "x": "/simple-message-notification/index.html", - "y": 46 - }, - { - "x": "/cloud-backup-recovery/umn/", - "y": 46 - }, - { - "x": "/virtual-private-network/umn/getting_started/index.html", - "y": 46 - }, - { - "x": "/virtual-private-network/umn/overview/index.html", - "y": 46 - }, - { - "x": "/marketplace/index.html", - "y": 46 - }, - { - "x": "/domain-name-service/index.html", - "y": 46 - }, - { - "x": "/cloud-eye/umn/", - "y": 45 - }, - { - "x": "/software-repository-container/index.html", - "y": 45 - }, - { - "x": "/elastic-cloud-server/api-ref/apis_recommended/lifecycle_management/index.html", - "y": 44 - }, - { - "x": "/auto-scaling/index.html", - "y": 44 - }, - { - "x": "/api-usage/guidelines/calling_apis/index.html", - "y": 44 - }, - { - "x": "/direct-connect/umn/getting_started/enabling_direct_connect/connecting_your_on-premises_data_center_to_the_cloud.html", - "y": 44 - }, - { - "x": "/cloud-container-engine/umn/getting_started/index.html", - "y": 44 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_specifications/dedicated_general-purpose_ecss.html", - "y": 44 - }, - { - "x": "/key-management-service/umn/service_overview/index.html", - "y": 44 - }, - { - "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/creating_a_cce_standard_turbo_cluster.html", - "y": 44 - }, - { - "x": "/log-tank-service/index.html", - "y": 43 - }, - { - "x": "/domain-name-service/umn/public_zones/configuring_dnssec.html", - "y": 43 - }, - { - "x": "/virtual-private-network/umn/overview/what_is_vpn.html", - "y": 43 - }, - { - "x": "/software-repository-container/umn/", - "y": 43 - }, - { - "x": "/cloud-container-instance/umn/", - "y": 43 - }, - { - "x": "/developer/sdk.html", - "y": 43 - }, - { - "x": "/mapreduce-service/operation-guide/using_clickhouse/migrating_clickhouse_data/using_clickhouse_to_import_and_export_data.html", - "y": 42 - }, - { - "x": "/cloud-create/umn/service_catalogs/openshift.html", - "y": 42 - }, - { - "x": "/elastic-cloud-server/umn/getting_started/initializing_evs_data_disks/initializing_a_windows_data_disk_windows_server_2019.html", - "y": 42 - }, - { - "x": "/cloud-search-service/umn/", - "y": 42 - }, - { - "x": "/developer/sdk/index.html", - "y": 42 - }, - { - "x": "/cloud-container-engine/api-ref/apis/cluster_management/creating_a_cluster.html", - "y": 42 - }, - { - "x": "/key-management-service/umn/", - "y": 41 - }, - { - "x": "/object-storage-service/umn/service_overview/about_obs.html", - "y": 41 - }, - { - "x": "/elastic-load-balancing/umn/load_balancer/index.html", - "y": 41 - }, - { - "x": "/identity-access-management/permissions/", - "y": 41 - }, - { - "x": "/application-service-mesh/index.html", - "y": 41 - }, - { - "x": "/data-lake-insight/index.html", - "y": 41 - }, - { - "x": "/identity-access-management/umn/service_overview/iam_features.html", - "y": 40 - }, - { - "x": "/object-storage-service/s3api/obs_rest_apis/index.html", - "y": 40 - }, - { - "x": "/virtual-private-network/umn/management/index.html", - "y": 40 - }, - { - "x": "/function-graph/api-ref/apis/function_lifecycle_management/creating_a_function.html", - "y": 40 - }, - { - "x": "/elastic-volume-service/umn/service_overview/disk_types_and_performance.html", - "y": 40 - }, - { - "x": "/cloud-container-instance/umn/service_overview/index.html", - "y": 40 - }, - { - "x": "/virtual-private-cloud/umn/vpc_and_subnet/index.html", - "y": 39 - }, - { - "x": "/cloud-trace-service/index.html", - "y": 39 - }, - { - "x": "/relational-database-service/umn/getting_started_with_rds_for_postgresql/index.html", - "y": 39 - }, - { - "x": "/cloud-create/index.html", - "y": 39 - }, - { - "x": "/cloud-create/umn/", - "y": 39 - }, - { - "x": "/host-security-service/index.html", - "y": 39 - }, - { - "x": "/cloud-container-engine/umn/storage/storageclass.html", - "y": 39 - }, - { - "x": "/elastic-cloud-server/api-ref/apis_recommended/lifecycle_management/creating_an_ecs.html", - "y": 39 - }, - { - "x": "/secure-mail-gateway/umn/intro.html", - "y": 39 - }, - { - "x": "/anti-ddos/index.html", - "y": 38 - }, - { - "x": "/secure-mail-gateway/umn/security_mechanisms.html", - "y": 38 - }, - { - "x": "/virtual-private-network/umn/overview/differences_between_enterprise_edition_vpn_and_classic_vpn.html", - "y": 38 - }, - { - "x": "/cloud-container-engine/umn/network/ingresses/overview.html", - "y": 38 - }, - { - "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/index.html", - "y": 37 - }, - { - "x": "/identity-access-management/umn/service_overview/what_is_iam.html", - "y": 37 - }, - { - "x": "/md.html", - "y": 37 - }, - { - "x": "/elastic-cloud-server/umn/getting_started/index.html", - "y": 37 - }, - { - "x": "/taurusdb/index.html", - "y": 37 - }, - { - "x": "/direct-connect/index.html", - "y": 37 - }, - { - "x": "/object-storage-service/api-ref/apis/index.html", - "y": 37 - }, - { - "x": "/web-application-firewall-dedicated/index.html", - "y": 37 - }, - { - "x": "/cloud-container-engine/umn/service_overview/what_is_cce.html", - "y": 37 - }, - { - "x": "/application-performance-management/index.html", - "y": 36 - }, - { - "x": "/virtual-private-cloud/umn/vpc_peering_connection/vpc_peering_connection_usage_examples.html", - "y": 36 - }, - { - "x": "/identity-access-management/permissions/permissions.html", - "y": 36 - }, - { - "x": "/vpc-endpoint/index.html", - "y": 36 - }, - { - "x": "/nat-gateway/index.html", - "y": 36 - }, - { - "x": "/cloud-container-instance/umn/service_overview/overview.html", - "y": 36 - }, - { - "x": "/key-management-service/umn/user_guide/index.html", - "y": 36 - }, - { - "x": "/identity-access-management/umn/getting_started/index.html", - "y": 36 - }, - { - "x": "/mapreduce-service/operation-guide/using_sqoop/common_sqoop_commands_and_parameters.html", - "y": 35 - }, - { - "x": "/web-application-firewall/umn/getting_started/testing_waf.html", - "y": 35 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/concepts/index.html", - "y": 35 - }, - { - "x": "/api-usage/guidelines/calling_apis/ak_sk_authentication/index.html", - "y": 35 - }, - { - "x": "/security-services.html", - "y": 35 - }, - { - "x": "/document-database-service/index.html", - "y": 35 - }, - { - "x": "/cloud-container-engine/umn/network/ingresses/index.html", - "y": 35 - }, - { - "x": "/docsportal/container.html", - "y": 35 - }, - { - "x": "/relational-database-service/api-ref/", - "y": 35 - }, - { - "x": "/relational-database-service/api-ref/api_v3_recommended/index.html", - "y": 35 - }, - { - "x": "/identity-access-management/umn/service_overview/identity_management.html", - "y": 35 - }, - { - "x": "/identity-access-management/api-ref/apis/index.html", - "y": 34 - }, - { - "x": "/web-application-firewall/umn/", - "y": 34 - }, - { - "x": "/identity-access-management/umn/service_overview/index.html", - "y": 34 - }, - { - "x": "/data-warehouse-service/index.html", - "y": 34 - }, - { - "x": "/developer/sdk/third-party-sdk.html", - "y": 34 - }, - { - "x": "/elastic-volume-service/umn/service_overview/index.html", - "y": 34 - }, - { - "x": "/cloud-container-engine/umn/nodes/index.html", - "y": 34 - }, - { - "x": "/enterprise-router/index.html", - "y": 34 - }, - { - "x": "/elastic-cloud-server/api-ref/native_openstack_nova_apis/index.html", - "y": 34 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_windows_ecs/logging_in_to_a_windows_ecs_using_vnc.html", - "y": 34 - }, - { - "x": "/relational-database-service/umn/introduction/db_instance_description/db_instance_classes.html", - "y": 33 - }, - { - "x": "/virtual-private-network/umn/overview/application_scenarios.html", - "y": 33 - }, - { - "x": "/cloud-eye/api-ref/", - "y": 33 - }, - { - "x": "/modelarts/umn/", - "y": 33 - }, - { - "x": "/api-usage/guidelines/calling_apis/obtaining_required_information.html", - "y": 33 - }, - { - "x": "/function-graph/api-ref/", - "y": 33 - }, - { - "x": "/key-management-service/umn/user_guide/key_management/index.html", - "y": 33 - }, - { - "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/index.html", - "y": 33 - }, - { - "x": "/bare-metal-server/index.html", - "y": 33 - }, - { - "x": "/cloud-server-backup-service/umn/service_overview/csbs.html", - "y": 33 - }, - { - "x": "/cloud-search-service/umn/opensearch/opensearch_dashboards/creating_and_authorizing_a_user_on_the_opensearch_dashboards.html", - "y": 33 - }, - { - "x": "/scalable-file-service/index.html", - "y": 33 - }, - { - "x": "/virtual-private-cloud/umn/vpc_and_subnet/vpc/adding_a_secondary_ipv4_cidr_block_to_a_vpc.html", - "y": 33 - }, - { - "x": "/price-calculator/index.html", - "y": 33 - }, - { - "x": "/cloud-backup-recovery/umn/vault_management/index.html", - "y": 32 - }, - { - "x": "/marketplace/umn/customer.html", - "y": 32 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/index.html", - "y": 32 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_overview.html", - "y": 32 - }, - { - "x": "/nat-gateway/umn/", - "y": 32 - }, - { - "x": "/database.html", - "y": 32 - }, - { - "x": "/application-service-mesh/umn/", - "y": 32 - }, - { - "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/creating_a_loadbalancer_ingress_using_kubectl.html", - "y": 31 - }, - { - "x": "/elastic-cloud-server/umn/getting_started/creating_an_ecs/step_1_configure_basic_settings.html", - "y": 31 - }, - { - "x": "/storage-disaster-recovery-service/umn/service_overview/what_is_sdrs.html", - "y": 31 - }, - { - "x": "/distributed-cache-service/index.html", - "y": 31 - }, - { - "x": "/bare-metal-server/image-creation-guide/linux/configuring_the_root_partition_to_be_automatically_extended/centos_7_redhat_7_oracle_linux_7.html", - "y": 31 - }, - { - "x": "/data-arts-studio/index.html", - "y": 31 - }, - { - "x": "/secure-mail-gateway/umn/", - "y": 31 - }, - { - "x": "/elastic-load-balancing/umn/service_overview/index.html", - "y": 31 - }, - { - "x": "/virtual-private-network/umn/management/enterprise_edition_vpn/enterprise_edition_vpn_gateway_management/creating_a_vpn_gateway.html", - "y": 30 - }, - { - "x": "/distributed-message-service/umn/", - "y": 30 - }, - { - "x": "/application-service-mesh/umn/user_guide/index.html", - "y": 30 - }, - { - "x": "/price-calculator/api-ref/", - "y": 30 - }, - { - "x": "/api-usage/guidelines/", - "y": 30 - }, - { - "x": "/object-storage-service/api-ref/api_overview.html", - "y": 30 - }, - { - "x": "/object-storage-service/umn/faq/index.html", - "y": 30 - }, - { - "x": "/cloud-container-engine/umn/best_practice/index.html", - "y": 29 - }, - { - "x": "/cloud-container-engine/umn/clusters/upgrading_a_cluster/index.html", - "y": 29 - }, - { - "x": "/api-gateway/umn/", - "y": 29 - }, - { - "x": "/marketplace/umn/", - "y": 29 - }, - { - "x": "/identity-access-management/umn/user_guide/permissions/creating_a_custom_policy.html", - "y": 29 - }, - { - "x": "/docsportal/storage.html", - "y": 29 - }, - { - "x": "/api-gateway/api-ref/dedicated_gateway_apis_v2/index.html", - "y": 29 - }, - { - "x": "/nat-gateway/umn/service_overview/what_is_nat_gateway.html", - "y": 29 - }, - { - "x": "/elastic-volume-service/api-ref/", - "y": 29 - }, - { - "x": "/volume-backup-service/umn/service_overview/vbs.html", - "y": 29 - }, - { - "x": "/virtual-private-network/umn/management/enterprise_edition_vpn/index.html", - "y": 29 - }, - { - "x": "/image-management-service/umn/windows_operations/installing_and_configuring_cloudbase-init.html", - "y": 29 - }, - { - "x": "/api-usage/guidelines/overview.html", - "y": 28 - }, - { - "x": "/virtual-private-network/umn/getting_started/classic_vpn/creating_a_vpn.html", - "y": 28 - }, - { - "x": "/domain-name-service/umn/", - "y": 28 - }, - { - "x": "/virtual-private-cloud/umn/service_overview/what_is_virtual_private_cloud.html", - "y": 28 - }, - { - "x": "/elastic-cloud-server/api-ref/api_usage_guidelines.html", - "y": 28 - }, - { - "x": "/function-graph/umn/building_functions/index.html", - "y": 28 - }, - { - "x": "/enterprise-dashboard/umn/introduction.html", - "y": 28 - }, - { - "x": "/cloud-container-engine/umn/storage/index.html", - "y": 28 - }, - { - "x": "/image-management-service/umn/", - "y": 28 - }, - { - "x": "/cloud-container-engine/api-ref/api_usage_guidelines.html", - "y": 28 - }, - { - "x": "/cloud-eye/api-ref/api_description/monitoring_data/querying_monitoring_data_of_a_metric.html", - "y": 28 - }, - { - "x": "/data-replication-service/index.html", - "y": 28 - }, - { - "x": "/identity-access-management/umn/faqs/how_do_i_obtain_mfa_verification_codes.html", - "y": 28 - }, - { - "x": "/virtual-private-cloud/umn/service_overview/index.html", - "y": 28 - }, - { - "x": "/secure-mail-gateway/umn/installation.html", - "y": 28 - }, - { - "x": "/cloud-container-instance/umn/container_group/index.html", - "y": 28 - }, - { - "x": "/dedicated-host/index.html", - "y": 27 - }, - { - "x": "/enterprise-dashboard/api-ref/v2/index.html", - "y": 27 - }, - { - "x": "/identity-access-management/umn/user_guide/mfa_authentication_and_virtual_mfa_device.html", - "y": 27 - }, - { - "x": "/elastic-volume-service/umn/service_overview/disk_encryption.html", - "y": 27 - }, - { - "x": "/docsportal/database.html", - "y": 27 - }, - { - "x": "/direct-connect/umn/service_overview/direct_connect.html", - "y": 27 - }, - { - "x": "/cloud-eye/api-ref/api_description/index.html", - "y": 27 - }, - { - "x": "/virtual-private-cloud/api-ref/", - "y": 27 - }, - { - "x": "/elastic-load-balancing/api-ref/", - "y": 27 - }, - { - "x": "/cloud-container-engine/umn/storage/storage_basics.html", - "y": 27 - }, - { - "x": "/cloud-container-instance/umn/service_overview/constraints.html", - "y": 27 - }, - { - "x": "/enterprise-dashboard/umn/database_tables.html", - "y": 27 - }, - { - "x": "/cloud-container-engine/umn/network/container_network/overview.html", - "y": 27 - }, - { - "x": "/direct-connect/umn/service_overview/index.html", - "y": 26 - }, - { - "x": "/cloud-container-engine/umn/service_overview/notes_and_constraints.html", - "y": 26 - }, - { - "x": "/cloud-container-engine/umn/getting_started/creating_a_kubernetes_cluster.html", - "y": 26 - }, - { - "x": "/object-storage-service/umn/obs_browser_operation_guide/getting_started/creating_access_keys_ak_and_sk.html", - "y": 26 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/login_overview_linux.html", - "y": 26 - }, - { - "x": "/object-storage-service/s3api/operations_on_buckets/index.html", - "y": 26 - }, - { - "x": "/cloud-container-engine/umn/workloads/index.html", - "y": 26 - }, - { - "x": "/object-storage-service/s3api/introduction/index.html", - "y": 26 - }, - { - "x": "/elastic-volume-service/umn/service_overview/what_is_evs.html", - "y": 26 - }, - { - "x": "/virtual-private-cloud/api-ref/apis/subnet/creating_a_subnet.html", - "y": 26 - }, - { - "x": "/api-gateway/api-ref/dedicated_gateway_apis_v2/request_throttling_policy_management/creating_a_request_throttling_policy.html", - "y": 26 - }, - { - "x": "/elastic-cloud-server/umn/monitoring_using_cloud_eye/basic_ecs_metrics.html", - "y": 26 - }, - { - "x": "/identity-access-management/mycredential/how_do_i_manage_access_keys.html", - "y": 26 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/concepts/kms.html", - "y": 26 - }, - { - "x": "/cloud-server-backup-service/index.html", - "y": 26 - }, - { - "x": "/api-gateway/api-ref/", - "y": 26 - }, - { - "x": "/cloud-create/umn/service_catalogs/index.html", - "y": 26 - }, - { - "x": "/function-graph/api-ref/apis/index.html", - "y": 26 - }, - { - "x": "/virtual-private-cloud/umn/vpc_and_subnet/vpc/index.html", - "y": 26 - }, - { - "x": "/elastic-cloud-server/umn/images/index.html", - "y": 26 - }, - { - "x": "/relational-database-service/umn/faqs/index.html", - "y": 26 - }, - { - "x": "/virtual-private-cloud/umn/access_control/security_group/security_group_configuration_examples.html", - "y": 26 - }, - { - "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/overview.html", - "y": 26 - }, - { - "x": "/api-gateway/umn/service_overview/what_is_apig.html", - "y": 26 - }, - { - "x": "/elastic-ip/index.html", - "y": 25 - }, - { - "x": "/cloud-eye/umn/server_monitoring/installing_and_configuring_the_agent_on_a_linux_ecs_or_bms/modifying_the_dns_server_address_and_adding_security_group_rules_linux.html", - "y": 25 - }, - { - "x": "/image-management-service/umn/managing_private_images/exporting_an_image.html", - "y": 25 - }, - { - "x": "/relational-database-service/umn/best_practices/index.html", - "y": 25 - }, - { - "x": "/cloud-container-engine/umn/node_pools/index.html", - "y": 25 - }, - { - "x": "/virtual-private-network/umn/faqs/enterprise_edition_vpn/index.html", - "y": 25 - }, - { - "x": "/elastic-cloud-server/umn/passwords_and_key_pairs/key_pairs/obtaining_and_deleting_the_password_of_a_windows_ecs/obtaining_the_password_for_logging_in_to_a_windows_ecs.html", - "y": 25 - }, - { - "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/comparison_between_cluster_types.html", - "y": 25 - }, - { - "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/cloud_native_cluster_monitoring.html", - "y": 25 - }, - { - "x": "/geminidb/index.html", - "y": 25 - }, - { - "x": "/api-usage/guidelines/index.html", - "y": 25 - }, - { - "x": "/image-management-service/umn/creating_a_private_image/index.html", - "y": 25 - }, - { - "x": "/simple-message-notification/umn/", - "y": 25 - }, - { - "x": "/cloud-eye/umn/server_monitoring/index.html", - "y": 25 - }, - { - "x": "/host-security-service/umn/", - "y": 25 - }, - { - "x": "/domain-name-service/umn/public_zones/creating_a_public_zone.html", - "y": 25 - }, - { - "x": "/elastic-load-balancing/umn/backend_server_dedicated_load_balancers/configuring_security_group_and_firewall_rules.html", - "y": 24 - }, - { - "x": "/big_data.html", - "y": 24 - }, - { - "x": "/cloud-backup-recovery/api-ref/cbr_apis/index.html", - "y": 24 - }, - { - "x": "/function-graph/umn/configuring_functions/index.html", - "y": 24 - }, - { - "x": "/elastic-volume-service/umn/expanding_evs_disk_capacity/extending_disk_partitions_and_file_systems_linux/extending_partitions_and_file_systems_for_system_disks_linux.html", - "y": 24 - }, - { - "x": "/cloud-container-instance/umn/service_overview/basic_concepts.html", - "y": 24 - }, - { - "x": "/cloud-container-instance/umn/environment_configuration.html", - "y": 24 - }, - { - "x": "/identity-access-management/umn/getting_started/logging_in_as_an_iam_user.html", - "y": 24 - }, - { - "x": "/virtual-private-network/api-ref/", - "y": 24 - }, - { - "x": "/key-management-service/umn/user_guide/key_management/rotating_cmks/key_rotation_overview.html", - "y": 24 - }, - { - "x": "/identity-access-management/umn/user_guide/identity_providers/syntax_of_identity_conversion_rules.html", - "y": 24 - }, - { - "x": "/scalable-file-service/umn/", - "y": 24 - }, - { - "x": "/security/index.html", - "y": 24 - }, - { - "x": "/cloud-container-engine/api-ref/kubernetes_apis/index.html", - "y": 24 - }, - { - "x": "/software-repository-container/umn/image_management/index.html", - "y": 24 - }, - { - "x": "/cloud-container-instance/umn/service_overview/permissions_management.html", - "y": 24 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_an_ssh_password.html", - "y": 24 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/concepts/hsm.html", - "y": 23 - }, - { - "x": "/object-storage-service/api-ref/apis/operations_on_buckets/index.html", - "y": 23 - }, - { - "x": "/dedicated-host/umn/product_introduction/index.html", - "y": 23 - }, - { - "x": "/elastic-load-balancing/umn/load_balancer/creating_a_dedicated_load_balancer.html", - "y": 23 - }, - { - "x": "/software-repository-container/umn/service_overview/index.html", - "y": 23 - }, - { - "x": "/elastic-cloud-server/dev-guide/", - "y": 23 - }, - { - "x": "/document-database-service/api-ref/appendix/error_code.html", - "y": 23 - }, - { - "x": "/cloud-container-engine/api-ref/apis/cluster_management/creating_a_node_pool.html", - "y": 23 - }, - { - "x": "/elastic-volume-service/umn/changing_the_evs_disk_type_beta.html", - "y": 23 - }, - { - "x": "/cloud-firewall/umn/", - "y": 23 - }, - { - "x": "/elastic-load-balancing/api-ref/apis_v2.0/index.html", - "y": 23 - }, - { - "x": "/tag-management-service/api-ref/", - "y": 23 - }, - { - "x": "/virtual-private-cloud/api-ref/apis/index.html", - "y": 23 - }, - { - "x": "/key-management-service/api-ref/", - "y": 23 - }, - { - "x": "/identity-access-management/umn/user_guide/iam_users/index.html", - "y": 23 - }, - { - "x": "/elastic-cloud-server/umn/getting_started/creating_an_ecs/index.html", - "y": 23 - }, - { - "x": "/object-storage-service/s3api/obs_rest_apis/authenticating_a_request/index.html", - "y": 23 - }, - { - "x": "/direct-connect/umn/service_overview/application_scenarios.html", - "y": 23 - }, - { - "x": "/cloud-backup-recovery/api-ref/", - "y": 23 - }, - { - "x": "/cloud-container-engine/umn/node_pools/creating_a_node_pool.html", - "y": 23 - }, - { - "x": "/cloud-container-engine/umn/best_practice/devops/interconnecting_gitlab_with_swr_and_cce_for_ci_cd.html", - "y": 23 - }, - { - "x": "/cloud-create/umn/service_catalogs/nextcloud.html", - "y": 23 - }, - { - "x": "/cloud-container-engine/umn/clusters/cluster_overview.html", - "y": 23 - }, - { - "x": "/cloud-container-engine/umn/add-ons/container_network_add-ons/nginx_ingress_controller.html", - "y": 23 - }, - { - "x": "/cloud-container-engine/umn/storage/scalable_file_service/using_an_existing_sfs_file_system_through_a_static_pv.html", - "y": 23 - }, - { - "x": "/log-tank-service/umn/", - "y": 23 - }, - { - "x": "/software-repository-container/umn/permissions_management/index.html", - "y": 23 - }, - { - "x": "/bare-metal-server/image-creation-guide/linux/installing_cloud-init/suse_red_hat_centos_oracle_linux_ubuntu_debian.html", - "y": 22 - }, - { - "x": "/virtual-private-network/umn/overview/product_specifications.html", - "y": 22 - }, - { - "x": "/elastic-cloud-server/umn/faqs/file_upload_data_transfer/why_am_i_seeing_an_ftp_folder_error_when_i_open_a_folder_on_an_ftp_server.html", - "y": 22 - }, - { - "x": "/virtual-private-network/umn/overview/product_advantages.html", - "y": 22 - }, - { - "x": "/elastic-cloud-server/umn/faqs/index.html", - "y": 22 - }, - { - "x": "/object-storage-service/umn/obs_console_operation_guide/versioning/versioning_overview.html", - "y": 22 - }, - { - "x": "/elastic-cloud-server/umn/getting_started/logging_in_to_an_ecs.html", - "y": 22 - }, - { - "x": "/software-repository-container/umn/image_management/obtaining_a_long-term_valid_docker_login_command.html", - "y": 22 - }, - { - "x": "/elastic-load-balancing/umn/service_overview/differences_between_dedicated_and_shared_load_balancers.html", - "y": 22 - }, - { - "x": "/scalable-file-service/api-ref/", - "y": 22 - }, - { - "x": "/elastic-load-balancing/api-ref/apis_v3/index.html", - "y": 22 - }, - { - "x": "/elastic-cloud-server/umn/elastic_network_interfaces/index.html", - "y": 22 - }, - { - "x": "/cloud-container-instance/api-ref/", - "y": 22 - }, - { - "x": "/object-storage-service/umn/service_overview/basic_concepts/access_keys_ak_sk.html", - "y": 22 - }, - { - "x": "/elastic-volume-service/umn/overview/what_is_evs.html", - "y": 22 - }, - { - "x": "/cloud-container-engine/umn/nodes/creating_a_node.html", - "y": 22 - }, - { - "x": "/web-application-firewall-dedicated/umn/", - "y": 22 - }, - { - "x": "/relational-database-service/api-ref/api_v3_recommended/querying_database_specifications.html", - "y": 22 - }, - { - "x": "/function-graph/umn/building_functions/creating_a_deployment_package.html", - "y": 22 - }, - { - "x": "/additional/faqs/index.html", - "y": 22 - }, - { - "x": "/object-storage-service/tool-guide/logging_in_to_obs_browser.html", - "y": 22 - }, - { - "x": "/application-service-mesh/umn/service_overview/index.html", - "y": 22 - }, - { - "x": "/cloud-eye/umn/product_introduction/what_is_cloud_eye.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/best_practices/rds_for_postgresql/security_best_practices.html", - "y": 21 - }, - { - "x": "/key-management-service/umn/faqs/index.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/working_with_rds_for_postgresql/plugin_management/supported_plugins.html", - "y": 21 - }, - { - "x": "/developer/drivers.html", - "y": 21 - }, - { - "x": "/direct-connect/umn/getting_started/index.html", - "y": 21 - }, - { - "x": "/elastic-volume-service/umn/managing_encrypted_evs_disks.html", - "y": 21 - }, - { - "x": "/mapreduce-service/operation-guide/using_hudi/common_issues_about_hudi/data_write/hudi_fails_to_write_decimal_data_with_lower_precision.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/introduction/index.html", - "y": 21 - }, - { - "x": "/cloud-container-instance/umn/container_group/creating_a_container_group.html", - "y": 21 - }, - { - "x": "/cloud-eye/umn/services_interconnected_with_cloud_eye.html", - "y": 21 - }, - { - "x": "/log-tank-service/api-ref/", - "y": 21 - }, - { - "x": "/cloud-container-engine/umn/add-ons/scheduling_and_elasticity_add-ons/cce_cluster_autoscaler.html", - "y": 21 - }, - { - "x": "/mapreduce-service/index.html", - "y": 21 - }, - { - "x": "/elastic-load-balancing/umn/listener/index.html", - "y": 21 - }, - { - "x": "/vpc-endpoint/umn/", - "y": 21 - }, - { - "x": "/elastic-volume-service/api-ref/apis_recommended/index.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/introduction/product_release_notes/rds_for_postgresql_versioning_policy.html", - "y": 21 - }, - { - "x": "/enterprise-dashboard/api-ref/", - "y": 21 - }, - { - "x": "/config/index.html", - "y": 21 - }, - { - "x": "/nat-gateway/umn/service_overview/index.html", - "y": 21 - }, - { - "x": "/domain-name-service/umn/overview/index.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/best_practices/rds_for_postgresql/index.html", - "y": 21 - }, - { - "x": "/api-gateway/umn/api_policies/request_throttling_2.0.html", - "y": 21 - }, - { - "x": "/log-tank-service/umn/log_ingestion/index.html", - "y": 21 - }, - { - "x": "/host-security-service/umn/introduction/what_is_hss.html", - "y": 21 - }, - { - "x": "/cloud-search-service/api-ref/", - "y": 21 - }, - { - "x": "/identity-access-management/api-ref/apis/token_management/index.html", - "y": 21 - }, - { - "x": "/cloud-container-engine/api-ref/apis/cluster_management/listing_clusters_in_a_specified_project.html", - "y": 21 - }, - { - "x": "/elastic-cloud-server/umn/instances/managing_gpu_drivers_of_gpu-accelerated_ecss/manually_installing_a_grid_driver_on_a_gpu-accelerated_ecs.html", - "y": 21 - }, - { - "x": "/relational-database-service/umn/getting_started_with_rds_for_postgresql/step_1_create_a_db_instance.html", - "y": 21 - }, - { - "x": "/cloud-container-engine/umn/high-risk_operations.html", - "y": 21 - }, - { - "x": "/elastic-volume-service/umn/overview/index.html", - "y": 21 - }, - { - "x": "/cloud-container-engine/umn/add-ons/container_storage_add-ons/cce_container_storage_everest.html", - "y": 20 - }, - { - "x": "/cloud-container-engine/umn/clusters/upgrading_a_cluster/cluster_upgrade_overview.html", - "y": 20 - }, - { - "x": "/virtual-private-network/umn/getting_started/enterprise_edition_vpn/step_1_creating_a_vpn_gateway.html", - "y": 20 - }, - { - "x": "/direct-connect/umn/service_overview/basic_concepts/connections.html", - "y": 20 - }, - { - "x": "/volume-backup-service/index.html", - "y": 20 - }, - { - "x": "/cloud-container-instance/umn/configuration_center/index.html", - "y": 20 - }, - { - "x": "/elastic-ip/umn/", - "y": 20 - }, - { - "x": "/cloud-container-engine/umn/product_bulletin/index.html", - "y": 20 - }, - { - "x": "/cloud-backup-recovery/umn/getting_started/index.html", - "y": 20 - }, - { - "x": "/function-graph/umn/creating_triggers/index.html", - "y": 20 - }, - { - "x": "/direct-connect/umn/getting_started/enabling_direct_connect/index.html", - "y": 20 - }, - { - "x": "/distributed-database-middleware/index.html", - "y": 20 - }, - { - "x": "/identity-access-management/umn/user_guide/security_settings/index.html", - "y": 20 - }, - { - "x": "/function-graph/umn/configuring_functions/configuring_agency_permissions.html", - "y": 20 - }, - { - "x": "/object-storage-service/s3api/obs_rest_apis/locating_a_resource.html", - "y": 20 - }, - { - "x": "/cloud-container-engine/umn/clusters/creating_a_cluster/index.html", - "y": 20 - }, - { - "x": "/data-lake-insight/umn/", - "y": 20 - }, - { - "x": "/cloud-eye/api-ref/api_description/monitoring_data/index.html", - "y": 20 - }, - { - "x": "/elastic-load-balancing/umn/service_overview/what_is_elb.html", - "y": 20 - }, - { - "x": "/developer/index.html", - "y": 20 - }, - { - "x": "/relational-database-service/umn/getting_started_with_rds_for_mysql/index.html", - "y": 20 - }, - { - "x": "/cloud-container-instance/umn/namespaces/creating_a_namespace.html", - "y": 20 - }, - { - "x": "/distributed-message-service/umn/service_overview/index.html", - "y": 20 - }, - { - "x": "/domain-name-service/umn/public_zones/index.html", - "y": 20 - }, - { - "x": "/key-management-service/api-ref/apis/index.html", - "y": 20 - }, - { - "x": "/data-replication-service/umn/real-time_synchronization/to_the_cloud/from_postgresql_to_postgresql.html", - "y": 20 - }, - { - "x": "/cloud-container-instance/umn/service_overview/application_scenarios.html", - "y": 20 - }, - { - "x": "/cloud-trace-service/umn/user_guide/supported_services_and_operations.html", - "y": 20 - }, - { - "x": "/cloud-container-engine/umn/getting_started/deploying_a_deployment_nginx.html", - "y": 20 - }, - { - "x": "/cloud-eye/api-ref/api_description/metrics/querying_metrics.html", - "y": 20 - }, - { - "x": "/image-management-service/umn/overview/index.html", - "y": 20 - }, - { - "x": "/distributed-cache-service/umn/service_overview/dcs_instance_specifications/redis_4.0_and_5.0_instance_specifications.html", - "y": 20 - }, - { - "x": "/dedicated-host/umn/", - "y": 19 - }, - { - "x": "/optical-character-recognition/index.html", - "y": 19 - }, - { - "x": "/gaussdb-opengauss/umn/getting_started/connecting_to_a_db_instance_using_a_driver/using_jdbc_to_connect_to_a_database.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/network/service/index.html", - "y": 19 - }, - { - "x": "/domain-name-service/umn/getting_started/index.html", - "y": 19 - }, - { - "x": "/image-management-service/umn/creating_a_private_image/creating_a_windows_system_disk_image_from_an_iso_file/overview.html", - "y": 19 - }, - { - "x": "/elastic-ip/umn/service_overview/index.html", - "y": 19 - }, - { - "x": "/virtual-private-cloud/api-ref/api_v3/index.html", - "y": 19 - }, - { - "x": "/domain-name-service/umn/overview/public_domain_name_resolution.html", - "y": 19 - }, - { - "x": "/nat-gateway/umn/service_overview/nat_gateway_specifications.html", - "y": 19 - }, - { - "x": "/relational-database-service/api-ref/api_v3_recommended/db_instance_management/index.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/network/service/loadbalancer/index.html", - "y": 19 - }, - { - "x": "/cloud-create/umn/service_catalogs/argocd.html", - "y": 19 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/concepts/dek.html", - "y": 19 - }, - { - "x": "/key-management-service/umn/service_overview/key_management/concepts/cmk.html", - "y": 19 - }, - { - "x": "/host-security-service/umn/introduction/index.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/cloud_native_log_collection.html", - "y": 19 - }, - { - "x": "/auto-scaling/umn/", - "y": 19 - }, - { - "x": "/elastic-volume-service/umn/getting_started/creating_an_evs_disk.html", - "y": 19 - }, - { - "x": "/data-warehouse-service/api-ref/", - "y": 19 - }, - { - "x": "/identity-access-management/umn/service_overview/permissions_management.html", - "y": 19 - }, - { - "x": "/cloud-create/api-ref/auth.html", - "y": 19 - }, - { - "x": "/identity-access-management/api-ref/api_overview.html", - "y": 19 - }, - { - "x": "/modelarts/umn/inference_deployment/managing_ai_applications/creating_an_ai_application/importing_a_meta_model_from_obs.html", - "y": 19 - }, - { - "x": "/object-storage-service/api-ref/calling_apis/index.html", - "y": 19 - }, - { - "x": "/object-storage-service/s3api/introduction/compatibility_of_obs_rest_apis.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/faqs/index.html", - "y": 19 - }, - { - "x": "/direct-connect/umn/", - "y": 19 - }, - { - "x": "/private-link-access-service/index.html", - "y": 19 - }, - { - "x": "/anti-ddos/umn/", - "y": 19 - }, - { - "x": "/elastic-cloud-server/umn/instances/logging_in_to_a_linux_ecs/logging_in_to_a_linux_ecs_using_vnc.html", - "y": 19 - }, - { - "x": "/elastic-cloud-server/api-ref/apis_recommended/status_management/index.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/o_and_m/o_and_m_best_practices/monitoring_custom_metrics_using_cloud_native_cluster_monitoring.html", - "y": 19 - }, - { - "x": "/cloud-container-engine/umn/network/ingresses/loadbalancer_ingresses/advanced_setting_examples_of_loadbalancer_ingresses/configuring_advanced_forwarding_actions_for_a_loadbalancer_ingress.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/network/container_network/index.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/change_history.html", - "y": 18 - }, - { - "x": "/object-storage-service/tool-guide/", - "y": 18 - }, - { - "x": "/simple-message-notification/api-ref/apis/index.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/storage/object_storage_service/using_an_existing_obs_bucket_through_a_static_pv.html", - "y": 18 - }, - { - "x": "/identity-access-management/umn/faqs/index.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/getting_started/introduction.html", - "y": 18 - }, - { - "x": "/resource-formation-service/index.html", - "y": 18 - }, - { - "x": "/elastic-cloud-server/umn/disks/index.html", - "y": 18 - }, - { - "x": "/private-link-access-service/umn/faqs/service_levels/what_about_service_level_agreements_slas.html", - "y": 18 - }, - { - "x": "/web-application-firewall-dedicated/umn/applying_for_a_cloud_waf_instance.html", - "y": 18 - }, - { - "x": "/cloud-container-instance/umn/namespaces/index.html", - "y": 18 - }, - { - "x": "/elastic-volume-service/api-ref/apis_recommended/disk_management/index.html", - "y": 18 - }, - { - "x": "/virtual-private-network/umn/faqs/index.html", - "y": 18 - }, - { - "x": "/api-usage/guidelines/calling_apis/ak_sk_authentication/signing_a_request.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/add-ons/cloud_native_observability_add-ons/kubernetes_metrics_server.html", - "y": 18 - }, - { - "x": "/image-management-service/umn/linux_operations/installing_cloud-init.html", - "y": 18 - }, - { - "x": "/cloud-container-engine/umn/workloads/creating_a_workload/index.html", - "y": 18 - }, - { - "x": "/object-storage-service/api-ref/apis/operations_on_objects/index.html", - "y": 18 - }, - { - "x": "/elastic-cloud-server/umn/using_iam_to_grant_access_to_ecs/index.html", - "y": 18 - }, - { - "x": "/enterprise-dashboard/umn/howto.html", - "y": 18 - }, - { - "x": "/image-management-service/api-ref/ims_apis/index.html", - "y": 18 - }, - { - "x": "/web-application-firewall-dedicated/api-ref/apis/index.html", - "y": 18 - }, - { - "x": "/log-tank-service/api-ref/apis/index.html", - "y": 18 - }, - { - "x": "/distributed-message-service/umn/getting_started/getting_started_with_kafka_for_message_production_and_consumption.html", - "y": 18 - }, - { - "x": "/virtual-private-cloud/umn/access_control/security_group/security_groups_and_security_group_rules.html", - "y": 18 - }, - { - "x": "/elastic-cloud-server/umn/service_overview/ecs_types_and_specifications/ecs_lifecycle.html", - "y": 18 - }, - { - "x": "/object-storage-service/s3api/obs_rest_apis/authenticating_a_request/v4_common_request.html", - "y": 18 - } -] \ No newline at end of file -- 2.34.1 From 95c38587fef7768c0c7cd148d3c79af9b637e34f Mon Sep 17 00:00:00 2001 From: tischrei Date: Mon, 4 Aug 2025 10:37:37 +0000 Subject: [PATCH 3/7] refactor variables --- tools/collect_statistics.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tools/collect_statistics.py b/tools/collect_statistics.py index 4b71e79..7106b7a 100644 --- a/tools/collect_statistics.py +++ b/tools/collect_statistics.py @@ -22,7 +22,6 @@ import otc_metadata.services import argparse # ===== Configuration ===== -UMAMI_BASE_URL = "https://analytics.otc-service.com" USERNAME = os.getenv("UMAMI_USERNAME") PASSWORD = os.getenv("UMAMI_PASSWORD") OUTPUT_FILE = "stats.json" @@ -31,7 +30,12 @@ def parse_args(): """ Command-line arguments """ - parser = argparse.ArgumentParser(description="Umami Statistic Script") + parser = argparse.ArgumentParser(description="Analytics Script") + parser.add_argument( + "--base-url", + default="https://analytics.otc-service.com", + help="Base_Url of analytics server" + ) parser.add_argument( "--environment", default=['public'], @@ -53,9 +57,9 @@ def parse_args(): return parser.parse_args() -def get_umami_token(): +def get_umami_token(base_url): """Get Bearer-Token from Umami-API.""" - url = f"{UMAMI_BASE_URL}/api/auth/login" + url = f"{base_url}/api/auth/login" response = requests.post(url, json={"username": USERNAME, "password": PASSWORD}) response.raise_for_status() return response.json().get("token") @@ -69,10 +73,10 @@ def get_4_weeks_range(): end_ts = int(end_date.timestamp() * 1000) return start_ts, end_ts -def fetch_pageviews(token, start_ts, end_ts, website_id): +def fetch_pageviews(token, start_ts, end_ts, website_id, base_url): """Retrieves statistics from API server.""" headers = {"Authorization": f"Bearer {token}"} - url = f"{UMAMI_BASE_URL}/api/websites/{website_id}/metrics" + url = f"{base_url}/api/websites/{website_id}/metrics" params = { "type": "url", "startAt": start_ts, @@ -103,9 +107,9 @@ def save_to_file(data, filename): def main(): args = parse_args() - token = get_umami_token() + token = get_umami_token(base_url=args.base_url) start_ts, end_ts = get_4_weeks_range() - stats = fetch_pageviews(token, start_ts, end_ts, website_id=args.website_id) + stats = fetch_pageviews(token, start_ts, end_ts, website_id=args.website_id, base_url=args.base_url) filtered_stats = filter_stats_by_existing_services( stats=stats, cloud_environment=args.cloud_environment, -- 2.34.1 From be1e67803820b36bef8efac1f77e6676ce7ef717 Mon Sep 17 00:00:00 2001 From: tischrei Date: Fri, 8 Aug 2025 09:40:10 +0000 Subject: [PATCH 4/7] fix pep8 --- analytics/public/eu_de.json | 12 ++++ analytics/public/swiss.json | 12 ++++ stats.json | 12 ++++ tools/collect_statistics.py | 126 +++++++++++++++++++++++++++--------- 4 files changed, 131 insertions(+), 31 deletions(-) create mode 100644 analytics/public/eu_de.json create mode 100644 analytics/public/swiss.json create mode 100644 stats.json diff --git a/analytics/public/eu_de.json b/analytics/public/eu_de.json new file mode 100644 index 0000000..649d4c0 --- /dev/null +++ b/analytics/public/eu_de.json @@ -0,0 +1,12 @@ +[ + "evs", + "ecs", + "ims", + "cce", + "obs", + "rds", + "iam", + "sfs", + "elb", + "config" +] \ No newline at end of file diff --git a/analytics/public/swiss.json b/analytics/public/swiss.json new file mode 100644 index 0000000..885f1da --- /dev/null +++ b/analytics/public/swiss.json @@ -0,0 +1,12 @@ +[ + "evs", + "ecs", + "ims", + "cce", + "obs", + "rds", + "iam", + "elb", + "cbr", + "vpn" +] \ No newline at end of file diff --git a/stats.json b/stats.json new file mode 100644 index 0000000..649d4c0 --- /dev/null +++ b/stats.json @@ -0,0 +1,12 @@ +[ + "evs", + "ecs", + "ims", + "cce", + "obs", + "rds", + "iam", + "sfs", + "elb", + "config" +] \ No newline at end of file diff --git a/tools/collect_statistics.py b/tools/collect_statistics.py index 7106b7a..ca93948 100644 --- a/tools/collect_statistics.py +++ b/tools/collect_statistics.py @@ -15,17 +15,32 @@ import requests import json -import time from datetime import datetime, timedelta import os import otc_metadata.services import argparse +import logging # ===== Configuration ===== USERNAME = os.getenv("UMAMI_USERNAME") PASSWORD = os.getenv("UMAMI_PASSWORD") OUTPUT_FILE = "stats.json" +# ===== Data ===== +blacklist = [ + "ed", + "sd" +] + +# ===== Logger ===== + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", +) +logger = logging.getLogger(__name__) + + def parse_args(): """ Command-line arguments @@ -36,6 +51,12 @@ def parse_args(): default="https://analytics.otc-service.com", help="Base_Url of analytics server" ) + parser.add_argument( + "--cloud-environment", + default="eu_de", + choices=['eu_de', 'swiss'], + help="Cloud Environments (default: eu_de)" + ) parser.add_argument( "--environment", default=['public'], @@ -44,10 +65,10 @@ def parse_args(): help="Environments (default: ['public'])" ) parser.add_argument( - "--cloud-environment", - default="eu_de", - choices=['eu_de', 'swiss'], - help="Cloud Environments (default: eu_de)" + "--limit", + type=int, + default=10, + help="Result count" ) parser.add_argument( "--website-id", @@ -57,6 +78,7 @@ def parse_args(): return parser.parse_args() + def get_umami_token(base_url): """Get Bearer-Token from Umami-API.""" url = f"{base_url}/api/auth/login" @@ -64,6 +86,7 @@ def get_umami_token(base_url): response.raise_for_status() return response.json().get("token") + def get_4_weeks_range(): """Calculates start and end of 4 weeks range in UNIX timestamp format.""" end_date = datetime.utcnow() @@ -73,6 +96,7 @@ def get_4_weeks_range(): end_ts = int(end_date.timestamp() * 1000) return start_ts, end_ts + def fetch_pageviews(token, start_ts, end_ts, website_id, base_url): """Retrieves statistics from API server.""" headers = {"Authorization": f"Bearer {token}"} @@ -87,38 +111,78 @@ def fetch_pageviews(token, start_ts, end_ts, website_id, base_url): response.raise_for_status() return response -def filter_stats_by_existing_services( - stats, cloud_environment, environment): - """Filter the stats to services which are existing""" + +def filter_unique_service_types(stats, cloud_environment, environment, limit): + """ + Filter stats and return unique service_type values that exist in metadata, + skip blacklisted service types, and limit results to `limit` entries. + """ services = otc_metadata.services.Services().all_services_by_cloud_environment( cloud_environment=cloud_environment, - environments=environment) - - print(json.dumps(services)) + environments=environment + ) - res = services - return res + # Map service_uri -> service_type + uri_to_type = {s["service_uri"]: s["service_type"] for s in services} + + seen_types = set() + filtered = [] + + for entry in stats.json(): + url_path = entry["x"] + + for service_uri, service_type in uri_to_type.items(): + if f"/{service_uri}" in url_path and service_type not in seen_types: + if service_type in blacklist: + continue + + filtered.append(service_type) + seen_types.add(service_type) + + if len(filtered) >= limit: + return filtered + break + + return filtered + + +def save_to_file(data, environment, cloud_environment): + """ + Saves data in the folder ./analytics//.json + """ + folder = os.path.join("analytics", environment) + os.makedirs(folder, exist_ok=True) + + filename = os.path.join(folder, f"{cloud_environment}.json") + abs_path = os.path.abspath(filename) + + with open(filename, "w", encoding="utf-8") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + logger.info(f"✅ Data saved in: {abs_path}") -def save_to_file(data, filename): - """Saves collected data in a file.""" - print(data) - # with open(filename, "w", encoding="utf-8") as f: - # json.dump(data, f, indent=2, ensure_ascii=False) def main(): - args = parse_args() - token = get_umami_token(base_url=args.base_url) - start_ts, end_ts = get_4_weeks_range() - stats = fetch_pageviews(token, start_ts, end_ts, website_id=args.website_id, base_url=args.base_url) - filtered_stats = filter_stats_by_existing_services( - stats=stats, - cloud_environment=args.cloud_environment, - environment=args.environment + try: + args = parse_args() + token = get_umami_token(base_url=args.base_url) + start_ts, end_ts = get_4_weeks_range() + stats = fetch_pageviews(token, start_ts, end_ts, website_id=args.website_id, base_url=args.base_url) + filtered_stats = filter_unique_service_types( + stats=stats, + cloud_environment=args.cloud_environment, + environment=args.environment, + limit=args.limit + ) + save_to_file( + data=filtered_stats, + environment=args.environment[0], + cloud_environment=args.cloud_environment + ) + except Exception as e: + logger.error(f"Error: {e}") + raise - ) - - save_to_file(filtered_stats, OUTPUT_FILE) - print(f"Statistics saved in {OUTPUT_FILE}") if __name__ == "__main__": - main() \ No newline at end of file + main() -- 2.34.1 From b429f1772a23a555aa8d6876bbdbc75a485106be Mon Sep 17 00:00:00 2001 From: tischrei Date: Fri, 8 Aug 2025 09:46:40 +0000 Subject: [PATCH 5/7] remove unecessary files --- analytics/public/eu_de.json | 12 ------------ analytics/public/swiss.json | 12 ------------ stats.json | 12 ------------ 3 files changed, 36 deletions(-) delete mode 100644 analytics/public/eu_de.json delete mode 100644 analytics/public/swiss.json delete mode 100644 stats.json diff --git a/analytics/public/eu_de.json b/analytics/public/eu_de.json deleted file mode 100644 index 649d4c0..0000000 --- a/analytics/public/eu_de.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - "evs", - "ecs", - "ims", - "cce", - "obs", - "rds", - "iam", - "sfs", - "elb", - "config" -] \ No newline at end of file diff --git a/analytics/public/swiss.json b/analytics/public/swiss.json deleted file mode 100644 index 885f1da..0000000 --- a/analytics/public/swiss.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - "evs", - "ecs", - "ims", - "cce", - "obs", - "rds", - "iam", - "elb", - "cbr", - "vpn" -] \ No newline at end of file diff --git a/stats.json b/stats.json deleted file mode 100644 index 649d4c0..0000000 --- a/stats.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - "evs", - "ecs", - "ims", - "cce", - "obs", - "rds", - "iam", - "sfs", - "elb", - "config" -] \ No newline at end of file -- 2.34.1 From d738624951e1822ae6a8e0646368d3325fc0bb19 Mon Sep 17 00:00:00 2001 From: tischrei Date: Fri, 8 Aug 2025 10:06:07 +0000 Subject: [PATCH 6/7] add gitea workflow for fetching website analytics --- .../create-weekly-analytics-stats.yaml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .gitea/workflows/create-weekly-analytics-stats.yaml diff --git a/.gitea/workflows/create-weekly-analytics-stats.yaml b/.gitea/workflows/create-weekly-analytics-stats.yaml new file mode 100644 index 0000000..8eb047f --- /dev/null +++ b/.gitea/workflows/create-weekly-analytics-stats.yaml @@ -0,0 +1,61 @@ +name: Create Weekly Analytics Stats + +on: + schedule: + # 03:00 UTC = 04:00 CET + - cron: "0 3 * * 1" + +jobs: + run-analytics: + runs-on: ubuntu + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} # für Push-Berechtigung + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install requests otc-metadata + + - name: Run analytics for eu_de + env: + UMAMI_USERNAME: ${{ secrets.UMAMI_USERNAME }} + UMAMI_PASSWORD: ${{ secrets.UMAMI_PASSWORD }} + run: | + chmod +x ./collect_statistics.py + ./collect_statistics.py \ + --website-id "${{ secrets.UMAMI_WEBSITE_ID }}" \ + --cloud-environment "eu_de" \ + --environment "public" \ + --limit "10" + + - name: Run analytics for swiss + env: + UMAMI_USERNAME: ${{ secrets.UMAMI_USERNAME }} + UMAMI_PASSWORD: ${{ secrets.UMAMI_PASSWORD }} + run: | + ./collect_statistics.py \ + --website-id "${{ secrets.UMAMI_WEBSITE_ID }}" \ + --cloud-environment "swiss" \ + --environment "public" \ + --limit "10" + + - name: Commit and push results + run: | + git config --global user.name "gitea-actions[bot]" + git config --global user.email "actions@users.noreply.local" + git add analytics/ + if git diff --cached --quiet; then + echo "No changes to commit" + else + git commit -m "chore: update analytics data [skip ci]" + git push + fi -- 2.34.1 From f31abfead4b5199366b3261e6fe6d3d232ac3cd0 Mon Sep 17 00:00:00 2001 From: tischrei Date: Fri, 8 Aug 2025 10:08:05 +0000 Subject: [PATCH 7/7] add workflow dispatch --- .gitea/workflows/create-weekly-analytics-stats.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/create-weekly-analytics-stats.yaml b/.gitea/workflows/create-weekly-analytics-stats.yaml index 8eb047f..a684238 100644 --- a/.gitea/workflows/create-weekly-analytics-stats.yaml +++ b/.gitea/workflows/create-weekly-analytics-stats.yaml @@ -4,6 +4,7 @@ on: schedule: # 03:00 UTC = 04:00 CET - cron: "0 3 * * 1" + workflow_dispatch: jobs: run-analytics: -- 2.34.1