blob: 5a1fbbc19cb685940b828c8831517b94fa4c519b [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="twitter:site" content="skywalking.apache.org">
<meta name="twitter:image:src" content="https://skywalking.apache.org/images/skywalking_400x400.png">
<meta property="og:image" content="https://skywalking.apache.org/images/skywalking_400x400.png">
<meta name="generator" content="Hugo 0.80.0" />
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GR8N6PGRJ3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);};
gtag('js', new Date());gtag('config', 'G-GR8N6PGRJ3');
</script>
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3007530_pvozs1rz2wn.css">
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png">
<link rel="manifest" href="/favicons/site.webmanifest">
<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>Why is Clickhouse or Loki or xxx not supported as a storage option? | Apache SkyWalking</title><meta property="og:title" content="Why is Clickhouse or Loki or xxx not supported as a storage option?" />
<meta property="og:description" content="Why is Clickhouse or Loki or xxx not supported as a storage option? Background In the past several years, community users have asked why Clickhouse, Loki, or some other storage is not supported in the upstream. We have repeated the answer many times, but it is still happening, at here, I would like to write down the summary to help people understand more
Previous Discussions All the following issues were about discussing new storage extension topics." />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/main/next/en/faq/why-clickhouse-not-supported/" />
<meta itemprop="name" content="Why is Clickhouse or Loki or xxx not supported as a storage option?">
<meta itemprop="description" content="Why is Clickhouse or Loki or xxx not supported as a storage option? Background In the past several years, community users have asked why Clickhouse, Loki, or some other storage is not supported in the upstream. We have repeated the answer many times, but it is still happening, at here, I would like to write down the summary to help people understand more
Previous Discussions All the following issues were about discussing new storage extension topics.">
<meta itemprop="wordCount" content="564">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Why is Clickhouse or Loki or xxx not supported as a storage option?"/>
<meta name="twitter:description" content="Why is Clickhouse or Loki or xxx not supported as a storage option? Background In the past several years, community users have asked why Clickhouse, Loki, or some other storage is not supported in the upstream. We have repeated the answer many times, but it is still happening, at here, I would like to write down the summary to help people understand more
Previous Discussions All the following issues were about discussing new storage extension topics."/>
<link rel="preload" href="/scss/main.min.592235942cb3c9f3dd697382a4e7a1fad8e1c182dad2841bdce6b43b4a346ae8.css" as="style">
<link href="/scss/main.min.592235942cb3c9f3dd697382a4e7a1fad8e1c182dad2841bdce6b43b4a346ae8.css" rel="stylesheet" integrity="">
<link rel="stylesheet" href="/css/docSearch.css" />
<script src="/js/jquery-3.6.0.min.js"></script>
<title>Why is Clickhouse or Loki or xxx not supported as a storage option? | Apache SkyWalking</title>
</head>
<body class="td-page project-doc">
<header>
<nav class="js-navbar-scroll navbar navbar-expand flex-column flex-md-row td-navbar">
<div class="sidebar-button">
<i class="iconfont icon-menu"></i>
</div>
<a class="navbar-brand" href="/">
<span class="navbar-logo"><img width="130" src="/images/logo.svg" alt="SkyWalking"></span>
</a>
<div class="td-navbar-nav-scroll navbar-nav-wrapper" id="navigation">
<ul class="navbar-nav mt-lg-0">
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/docs" ><span>Projects and Docs</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/events" ><span>Events</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/blog" ><span>Blogs</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/downloads" ><span>Downloads</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/team" ><span>Team</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<a class="nav-link" href="/users" ><span>Users</span></a>
</li>
<li class="nav-item mr-3 mb-lg-0">
<span class="link dropdown blog">
<a class="link-name nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">中文资料</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="/zh/">博客</a>
<a class="dropdown-item" href="https://space.bilibili.com/390683219" target="_blank" rel="noopener noreferrer">
B站
</a>
<a class="dropdown-item" href="https://juejin.cn/user/13673577331607" target="_blank" rel="noopener noreferrer">
掘金
</a>
</div>
</span>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block search-input-box">
<span class="link dropdown">
<a class="link-name dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Links
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="http://www.apache.org/">Apache Software Foundation</a>
<a class="dropdown-item" href="https://github.com/apache/skywalking/issues">GitHub Issue Tracker</a>
<a class="dropdown-item" href="https://github.com/apache/skywalking/discussions">Discussion</a>
<a class="dropdown-item" href="https://lists.apache.org/list.html?dev@skywalking.apache.org">Dev Mailing List</a>
<a class="dropdown-item" href="https://cwiki.apache.org/confluence/display/SKYWALKING/Home">WIKI</a>
<a class="dropdown-item" href="http://www.apache.org/licenses/">License</a>
<a class="dropdown-item" href="http://www.apache.org/events/current-event">Apache Events</a>
<a class="dropdown-item" href="http://www.apache.org/security/">Security</a>
<a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor and Donate</a>
<a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
<a class="dropdown-item" href="https://apache.org/foundation/policies/privacy.html">Privacy</a>
</div>
</span>
<div id="docsearch"></div>
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 d-print-none scroll-bar td-sidebar">
<div class="description-wrapper">
<h5>
<img width="26" height="26" src="/images/project/skywalking.svg">
SkyWalking
</h5>
<p>SkyWalking primary repository and docs.</p>
</div>
<div class="version-wrapper">Version:
<select class="version-select">
<option selected value="next">
next
</option>
<option ZgotmplZ value="latest">
latest
</option>
<option ZgotmplZ value="v9.7.0">
v9.7.0
</option>
<option ZgotmplZ value="v9.6.0">
v9.6.0
</option>
<option ZgotmplZ value="v9.5.0">
v9.5.0
</option>
<option ZgotmplZ value="v9.4.0">
v9.4.0
</option>
<option ZgotmplZ value="v9.3.0">
v9.3.0
</option>
<option ZgotmplZ value="v9.2.0">
v9.2.0
</option>
<option ZgotmplZ value="v9.1.0">
v9.1.0
</option>
<option ZgotmplZ value="v9.0.0">
v9.0.0
</option>
</select>
</div>
<ul class="sidebar-menu">
<li>
<a href="/docs/main/next/readme">Welcome</a>
</li>
<li>
<a href="#">Concepts and Designs<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/concepts-and-designs/overview">Overview and Core concepts</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/project-goals">Project Goals</a>
</li>
<li>
<a href="#">Agents<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/concepts-and-designs/probe-introduction">Introduction</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/service-agent">Service Auto Instrument Agent</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/manual-sdk">Manual Instrument SDK</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/service-hierarchy">Service Hierarchy</a>
</li>
</ul>
</li>
<li>
<a href="#">Setup<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">Quick Start<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-setup">Introduction</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-docker">Run with Docker</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s">Run with Kubernetes</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/configuration-vocabulary">Configuration Vocabulary</a>
</li>
<li>
<a href="#">Advanced Setup<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/service-auto-grouping">Service Grouping</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-setting-override">Overriding Settings</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-ip-port">IP And Port Setting</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-init-mode">Backend Init Mode Startup</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-cluster">Cluster Management</a>
</li>
<li>
<a href="#">Choose Storage<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-storage">Introduction</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/storages/h2">H2</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/storages/elasticsearch">Elasticsearch &amp; OpenSearch</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/storages/mysql">MySQL</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/storages/postgresql">PostgreSQL</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/storages/banyandb">BanyanDB(Alpha)</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-expose">Setup External Communication Channels</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/kafka-fetcher">Kafka Fetcher</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/advanced-deployment">Advanced Deployment Options</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/ttl">Data Lifecycle. Time To Live (TTL)</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/endpoint-grouping-rules">Group Parameterized Endpoints</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/dynamical-logging">Dynamical Logging</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/grpc-security">Security(SSL/TLS/mTLS)</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-load-balancer">Setup Load Balancer</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-telemetry">OAP Self Observability Telemetry</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-health-check">OAP Health Check</a>
</li>
</ul>
</li>
<li>
<a href="#">Tracing<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/trace-sampling">Trace Sampling</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/slow-db-statement">Detect Slow Database Statement</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/slow-cache-command">Detect Slow Cache Command</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/mq">Message Queue Performance</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/uninstrumented-gateways">Uninstrumented Gateways</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/zipkin-trace">Zipkin Trace</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/otlp-trace">OpenTelemetry Trace</a>
</li>
</ul>
</li>
<li>
<a href="#">Metrics<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/guides/backend-oal-scripts">OAL Scripts</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/opentelemetry-receiver">OpenTelemetry Metrics</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/aws-firehose-receiver">AWS CloudWatch Metrics</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-zabbix">Zabbix Metrics</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-meter">Meter Analysis</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/telegraf-receiver">Telegraf Metrics</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/apdex-threshold">Apdex Threshold</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/micrometer-observations">Spring MicroMeter Observations Analysis</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-alarm">Alerting</a>
</li>
</ul>
</li>
<li>
<a href="#">Logging<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">Persistent Logging<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/filelog-native">Native Logging from Files</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/log-agent-native">Native Logging from Agents</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/log-otlp">OpenTelemetry Logging</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/log-analyzer">Log Analysis</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/on-demand-pod-log">On Demand Pod Logs</a>
</li>
</ul>
</li>
<li>
<a href="#">Profiling<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-trace-profiling">Tracing Profiling</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-ebpf-profiling">eBPF Profiling</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-continuous-profiling">Continuous Profiling</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/event/">Event</a>
</li>
<li>
<a href="#">Extension<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/exporter">Exporter</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/dynamic-config">Dynamic Configuration</a>
</li>
<li>
<a href="#">AI Pipeline<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/ai-pipeline/introduction">Introduction</a>
</li>
<li>
<a href="/docs/main/next/en/setup/ai-pipeline/http-restful-uri-pattern">HTTP Restful URI recognition</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">UI Setup<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">Native UI<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/ui-setup">Setup</a>
</li>
<li>
<a href="/docs/main/next/en/ui/readme">Customization</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/ui-grafana">Grafana UI</a>
</li>
</ul>
</li>
<li>
<a href="#">Official Dashboards<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">General Service<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/service-agent/server-agents">Server Agents</a>
</li>
<li>
<a href="/docs/main/next/en/setup/service-agent/agent-compatibility">Compatibility</a>
</li>
<li>
<a href="/docs/main/next/en/setup/service-agent/virtual-database">Virtual Database</a>
</li>
<li>
<a href="/docs/main/next/en/setup/service-agent/virtual-cache">Virtual Cache</a>
</li>
<li>
<a href="/docs/main/next/en/setup/service-agent/virtual-mq">Virtual MQ</a>
</li>
</ul>
</li>
<li>
<a href="#">Service Mesh<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/envoy/als_setting">Observe Service Mesh through Access Log Service (ALS)</a>
</li>
<li>
<a href="/docs/main/next/en/setup/zipkin/tracing">Observe Service Mesh through Zipkin traces</a>
</li>
<li>
<a href="/docs/main/next/en/setup/istio/readme">Observe Control Plane (Istio)</a>
</li>
<li>
<a href="/docs/main/next/en/setup/envoy/metrics_service_setting">Observe Data Plane (Envoy)</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s-network-monitoring">Profile Pod&#39;s Network</a>
</li>
</ul>
</li>
<li>
<a href="#">Kubernetes<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s-monitoring">Observe Kubernetes</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s-monitoring-metrics-cadvisor">kube-state-metrics &#43; cAdvisor</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s-monitoring-rover">Rover</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-k8s-network-monitoring">Profile Pod&#39;s Network</a>
</li>
</ul>
</li>
<li>
<a href="#">Infrastructure Monitoring<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-vm-monitoring">Linux Monitoring</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-win-monitoring">Windows Monitoring</a>
</li>
</ul>
</li>
<li>
<a href="#">AWS Cloud Monitoring<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-eks-monitoring">EKS Monitoring</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-s3-monitoring">S3 Monitoring</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-dynamodb-monitoring">AWS DynamoDB</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-api-gateway-monitoring">AWS API Gateway</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/setup/service-agent/browser-agent">Browser Monitoring</a>
</li>
<li>
<a href="#">Gateway Monitoring<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-nginx-monitoring">Nginx Monitoring</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-apisix-monitoring">APISIX Monitoring</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-api-gateway-monitoring">AWS API Gateway</a>
</li>
</ul>
</li>
<li>
<a href="#">Database Monitoring<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-mysql-monitoring">MySQL/MariaDB Server</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-postgresql-monitoring">PostgreSQL Server</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-aws-dynamodb-monitoring">AWS DynamoDB</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-redis-monitoring">Redis</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-elasticsearch-monitoring">Elasticsearch</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-mongodb-monitoring">MongoDB</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-bookkeeper-monitoring">BookKeeper</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-clickhouse-monitoring">ClickHouse</a>
</li>
</ul>
</li>
<li>
<a href="#">MQ Monitoring<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/backend-rabbitmq-monitoring">RabbitMQ</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-kafka-monitoring">Kafka</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-pulsar-monitoring">Pulsar</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-rocketmq-monitoring">RocketMQ</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-activemq-monitoring">ActiveMQ</a>
</li>
</ul>
</li>
<li>
<a href="#">Self Observability<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/setup/backend/dashboards-so11y">OAP self telemetry</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/dashboards-so11y-satellite">Satellite self telemetry</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="https://github.com/apache/skywalking-cli">CLI Setup</a>
</li>
<li>
<a href="/docs/main/next/en/setup/backend/backend-data-generator">Mock Data Generator Setup</a>
</li>
</ul>
</li>
<li>
<a href="#">APIs<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">Telemetry APIs/Protocols<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">Tracing<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/api/trace-data-protocol-v3">Spans APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/x-process-propagation-headers-v3">Tracing Context Propagation</a>
</li>
<li>
<a href="/docs/main/next/en/api/x-process-correlation-headers-v1">Tracing Correlation Correlation</a>
</li>
</ul>
</li>
<li>
<a href="#">Metrics APIs<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/api/meter">Meter APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/browser-protocol">Browser performance APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/jvm-protocol">JVM metrics APIs</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/api/log-data-protocol">Logging</a>
</li>
<li>
<a href="/docs/main/next/en/api/instance-properties">Service Instance Properties APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/event">Event</a>
</li>
<li>
<a href="/docs/main/next/en/api/profiling-protocol">Profiling</a>
</li>
</ul>
</li>
<li>
<a href="#">Query APIs<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="#">GraphQL APIs<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/api/query-protocol">GraphQL APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/metrics-query-expression">MQE Syntax</a>
</li>
<li>
<a href="/docs/main/next/en/api/query-protocol-deprecated">Deprecated APIs</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/api/promql-service">PromQL APIs</a>
</li>
<li>
<a href="/docs/main/next/en/api/logql-service">LogQL APIs</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">Customization<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/concepts-and-designs/backend-overview">Overview</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/oal">Analysis Traces and Mesh Traffic</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/mal">Analysis Metrics and Meters</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/lal">Analysis Logs</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/profiling">Profiling</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/service-hierarchy-configuration">Service Hierarchy Configuration</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/security/readme">Security Notice</a>
</li>
<li>
<a href="#">Debugging<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/debugging/config_dump">Scratch The OAP Config Dump</a>
</li>
</ul>
</li>
<li>
<a href="#">Academy<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/academy/scaling-with-apache-skywalking">Scaling SkyWalking server automatically in kubernetes</a>
</li>
<li>
<a href="/docs/main/next/en/papers/stam">STAM Paper, Streaming Topology Analysis Method</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/sdk-profiling">SDK Profiling to Fix the Blind Spot</a>
</li>
<li>
<a href="/docs/main/next/en/concepts-and-designs/ebpf-cpu-profiling">eBPF CPU Profiling to pinpoint Service Mesh Critical Performance Impact</a>
</li>
<li>
<a href="/docs/main/next/en/academy/diagnose-service-mesh-network-performance-with-ebpf">Diagnose Service Mesh Network Performance with eBPF</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/faq/readme">FAQs</a>
</li>
<li>
<a href="#">Contributing Guides<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/guides/community">Contact the community</a>
</li>
<li>
<a href="/docs/main/next/en/guides/asf/committer">Become A Committer</a>
</li>
<li>
<a href="/docs/main/next/en/guides/how-to-release/">Release Guide</a>
</li>
<li>
<a href="/docs/main/next/en/guides/how-to-build">Compiling Guide</a>
</li>
<li>
<a href="#">Contribute<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/guides/it-guide">Integration Tests</a>
</li>
<li>
<a href="/docs/main/next/en/guides/benchmark">Benchmark Tests</a>
</li>
<li>
<a href="/docs/main/next/en/guides/e2e">End to End Tests</a>
</li>
<li>
<a href="#">Project Extensions<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/guides/component-library-settings">Component Library Settings</a>
</li>
<li>
<a href="/docs/main/next/en/guides/source-extension">Extend An OAL Source</a>
</li>
</ul>
</li>
<li>
<a href="#">Dependencies<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/guides/dependencies">Project Dependencies Check</a>
</li>
<li>
<a href="/docs/main/next/en/guides/how-to-bump-up-zipkin">Zipkin dependency</a>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/guides/i18n">I18n</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="/docs/main/next/en/swip/readme">SWIP</a>
</li>
<li>
<a href="#">Changelog<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/changes/changes">Current Version</a>
</li>
<li>
<a href="#">9.x Releases<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/changes/changes-9.6.0">9.6.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.5.0">9.5.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.4.0">9.4.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.3.0">9.3.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.2.0">9.2.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.1.0">9.1.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-9.0.0">9.0.0</a>
</li>
</ul>
</li>
<li>
<a href="#">Archived Releases<i class="iconfont icon-arrow-right pull-right"></i></a>
<ul class="sidebar-submenu">
<li>
<a href="/docs/main/next/en/changes/changes-8.9.1">8.9.1</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.9.0">8.9.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.8.1">8.8.1</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.8.0">8.8.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.7.0">8.7.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.6.0">8.6.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.5.0">8.5.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.4.0">8.4.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.3.0">8.3.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.2.0">8.2.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.1.0">8.1.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.0.1">8.0.1</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-8.0.0">8.0.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-7.0.0">7.0.0</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-6.x">6.x</a>
</li>
<li>
<a href="/docs/main/next/en/changes/changes-5.x">5.x</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<script src="/js/sidebar-menu.js"></script>
<script>
(function (){
$.sidebarMenu($('.sidebar-menu'))
var path = window.location.pathname;
var hash = window.location.hash;
var $a = $('.sidebar-menu a')
$a.each(function (e){
if($(this).attr('href')+'/' === path || $(this).attr('href').replace('#','/#') === path+hash){
$(this).parents('li').addClass('active').show()
}
})
$a.on('click',function (){
var url = $(this).attr('href')
if(url!=='#'){
window.location.href = url
}
})
})()
</script>
<div class="commit-id">Commit Id: a636013</div>
</div>
<main class="col-12 col-md-9 col-xl-8 pl-md-5 pr-md-4" role="main">
<i class="iconfont icon-menu-doc doc-menu-button"></i>
<div class="td-content">
<h1 id="why-is-clickhouse-or-loki-or-xxx-not-supported-as-a-storage-option">Why is Clickhouse or Loki or xxx not supported as a storage option?</h1>
<h2 id="background">Background</h2>
<p>In the past several years, community users have asked why Clickhouse, Loki, or some other storage is not supported in the upstream. We have repeated the answer many times, but it is still happening, at here, I would like to write down the summary to help people understand more</p>
<h2 id="previous-discussions">Previous Discussions</h2>
<p>All the following issues were about discussing new storage extension topics.</p>
<ul>
<li>Loki as storage
<ul>
<li><a href="https://github.com/apache/skywalking/discussions/9836">https://github.com/apache/skywalking/discussions/9836</a></li>
</ul>
</li>
<li>ClickHouse
<ul>
<li><a href="https://github.com/apache/skywalking/issues/11924">https://github.com/apache/skywalking/issues/11924</a></li>
<li><a href="https://github.com/apache/skywalking/discussions/9011">https://github.com/apache/skywalking/discussions/9011</a></li>
</ul>
</li>
<li>Vertica
<ul>
<li><a href="https://github.com/apache/skywalking/discussions/8817">https://github.com/apache/skywalking/discussions/8817</a></li>
</ul>
</li>
</ul>
<p>Generally, all those asking are about adding a new kind of storage.</p>
<h2 id="why-they-dont-exist-">Why they don&rsquo;t exist ?</h2>
<p>First of all, <code>WHY</code> is not a suitable question. SkyWalking is a volunteer-driven community, the volunteers build this project including bug fixes, maintenance work, and new features from their personal and employer interests. What you saw about the current status is the combination of all those interests rather than responsibilities.
So, in SkyWalking, anything you saw existing is/was someone&rsquo;s interest and contributed to upstream.</p>
<p>This logic is the same as this question, SkyWalking active maintainers are focusing on JDBC(MySQL and PostgreSQL ecosystem) Database and Elasticsearch for existing users, and moving forward on BanyanDB as the native one. We for now don&rsquo;t have people interested in ClickHouse or any other database. That is why they are not there.</p>
<h2 id="how-could-add-one">How could add one?</h2>
<p>To add a new feature, including a new storage plugin, you should go through <a href="https://skywalking.apache.org/docs/main/next/en/swip/readme/">SWIP - SkyWalking Improvement Proposal</a> workflow, and have a full discussion with the maintenance team.
SkyWalking has a pluggable storage system, so, ideally new storage option is possible to implement a new provider for the storage module. Meanwhile, in practice, as storage implementation should be in high performance and well optimized, considering our experiences with JDBC and Elasticsearch implementations, some flags and annotations may need to be added in the kernel level and data model declarations.</p>
<p>Furthermore, as current maintainers are not a fun of Clickhouse or others(otherwise, you should have seen those implementations), they are not going to be involved in the code implementations and they don&rsquo;t know much more from a general perspective about which kind of implementation in that specific database will have a better behavior and performance. So, if you want to propose this to upstream, you should be very experienced in that database, and have enough scale and environments to provide solid benchmark.</p>
<h2 id="what-happens-next-if-the-new-implementation-gets-acceptedmergedreleased">What happens next if the new implementation gets accepted/merged/released?</h2>
<p>Who proposed this new implementation(such as clickhouse storage), has to take the responsibilities of the maintenance. The maintenance means they need to</p>
<ol>
<li>Join storage relative discussion to make sure SkyWalking can move forward on a kernel-level optimization without being blocked by these specific storage options.</li>
<li>Respond to this storage relative questions, bugs, CVEs, and performance issues.</li>
<li>Make the implementation performance match the expectation of the original proposal. Such as, about clickhouse, people are talking about how they are faster and have higher efficiency than Elasticsearch for large-scale deployments. Then we should always be able to see it has better benchmark and product side practice.</li>
</ol>
<p>Even if the storage gets accepted/merged/released, but <strong>no one can&rsquo;t take the above responsibilities</strong> or <strong>the community doesn&rsquo;t receive the feedback and questions about those storages</strong>, SkyWalking PMC(Project Management Committee) will start the process to remove the implementations. This happened before for Apache IoTDB and InfluxDB storage options. Here is the last vote about this,</p>
<ul>
<li><a href="https://github.com/apache/skywalking/discussions/9059">https://github.com/apache/skywalking/discussions/9059</a></li>
</ul>
</div>
<div>
<div id="edit-github">
<svg
fill="currentColor"
height="20"
width="20"
viewBox="0 0 40 40"
aria-hidden="true"
style="margin-right: 0.1em;vertical-align: sub; color: #3176d9">
<g>
<path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z" />
</g>
</svg>
<a class="github-link" title="Edit this page" href="" target="_blank">
<span id="edit-github-text">Edit this page</span>
</a>
</div>
</div>
<script>
let reg = /\/docs\/[a-zA-Z\-]+\/([\w|\.]+)\//;
let res = reg.exec(location.href);
let version = res && res[1];
let editGithub = document.getElementById("edit-github");
if (editGithub) {
editGithub.style.display = version === "next" ? "block" : "none";
}
if (version === "next") {
reg = /\/docs\/(.+?)\//;
let repoRes = reg.exec(location.href);
let repo = repoRes && repoRes[1];
if (repo === "main") {
repo = "skywalking"
}
reg = /\/next\/(.+)/;
let docs = reg.exec(location.href);
let docsUrl = docs && docs[1];
if (docsUrl) {
docsUrl = docsUrl.replace(/readme/i, 'README');
}
let prefixUrl = "https://github.com/apache/" + repo + "/blob/master/docs/";
let editGithubLink = document.querySelector("#edit-github a");
if (editGithubLink) {
editGithubLink.href = prefixUrl + docsUrl.replace(/\/$/, ".md");
}
}
</script>
</main>
<div id="toc" class="d-none d-xl-block col-xl-2 td-toc d-print-none">
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
</div>
<nav id="TableOfContents">
<ul>
<li><a href="#why-is-clickhouse-or-loki-or-xxx-not-supported-as-a-storage-option">Why is Clickhouse or Loki or xxx not supported as a storage option?</a>
<ul>
<li><a href="#background">Background</a></li>
<li><a href="#previous-discussions">Previous Discussions</a></li>
<li><a href="#why-they-dont-exist-">Why they don&rsquo;t exist ?</a></li>
<li><a href="#how-could-add-one">How could add one?</a></li>
<li><a href="#what-happens-next-if-the-new-implementation-gets-acceptedmergedreleased">What happens next if the new implementation gets accepted/merged/released?</a></li>
</ul>
</li>
</ul>
</nav>
<script>
$(function () {
var $toc = $("#TableOfContents");
if (!$toc || !$toc.length) {
return;
}
var top = $toc.offset().top;
$(window).on("scroll", debounce(setTop, 100))
$(window).on("scroll", debounce(addActive, 30))
function addActive() {
var scrollValue = $(window).scrollTop();
var topEle = null;
$.each($('main h1, main h2, main h3'), function (index, item) {
if ($(item).offset().top - 70 > scrollValue) {
return
}
if (!topEle) {
topEle = item
} else if ($(item).offset().top >= $(topEle).offset().top) {
topEle = item
}
if (topEle) {
var id = $(item).attr('id');
$toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
}
})
}
function setTop() {
var scrollValue = $(window).scrollTop();
if (scrollValue >= top - 70) {
$toc.addClass('fixed')
} else {
$toc.removeClass('fixed')
}
}
function debounce(fn, wait) {
var timeout = null;
return function () {
clearTimeout(timeout);
timeout = setTimeout(() => {
fn.apply(this, arguments);
}, wait);
};
}
})
</script>
</div>
</div>
</div>
<footer class="py-5 sky-row">
<div class="container-fluid text-center">
<div class="">
<ul class="list-inline mb-0">
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="Twitter" aria-label="Twitter">
<a class="text-color" target="_blank" href="https://twitter.com/asfskywalking">
<i class="iconfont icon-twitter"></i>
</a>
</li>
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="Slack" aria-label="Slack">
<a class="text-color" target="_blank" href="http://s.apache.org/slack-invite">
<i class="iconfont icon-slack"></i>
</a>
</li>
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="Mailing list" aria-label="Mailing list">
<a class="text-color" target="_blank" href="https://lists.apache.org/list.html?dev@skywalking.apache.org">
<i class="iconfont icon-email"></i>
</a>
</li>
<li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="GitHub" aria-label="GitHub">
<a class="text-color" target="_blank" href="https://github.com/apache/skywalking">
<i class="iconfont icon-github"></i>
</a>
</li>
</ul>
</div>
<div class="">
<small class="text-color">&copy; 2017 - 2024 The Apache Software Foundation All Rights Reserved</small>
</div>
<div class="">
<small class="text-color mt-4">Apache SkyWalking, SkyWalking, Apache, the Apache feather logo, and the Apache SkyWalking project logo are either registered trademarks or trademarks of the Apache Software Foundation.</small>
</div>
</div>
</footer>
</div>
<div id="popup">
<div class="mask">
<img src=""/>
</div>
</div>
<div class="sidebar-mask"></div>
<div class="sidebar">
<nav class="nav-links">
<div class="nav-item"><a href="/docs/" class="nav-link">Projects and Documentation</a></div>
<div class="nav-item"><a href="/events/" class="nav-link">Events</a></div>
<div class="nav-item"><a href="/blog/" class="nav-link router-link-exact-active router-link-active">Blog</a>
</div>
<div class="nav-item"><a href="/downloads/" class="nav-link">Downloads</a></div>
<div class="nav-item"><a href="/team/" class="nav-link">Team</a></div>
<div class="nav-item"><a href="/users/" class="nav-link">Users</a></div>
<div class="nav-item">
<div class="dropdown-wrapper open">
<a class="dropdown-title"><span>中文资料</span>
<span class="arrow down"></span>
</a>
<ul class="nav-dropdown">
<li class="dropdown-item">
<a href="/zh/" class="nav-link external">博客</a>
</li>
<li class="dropdown-item">
<a href="https://space.bilibili.com/390683219" target="_blank"
rel="noopener noreferrer" class="nav-link external">B站</a>
</li>
<li class="dropdown-item">
<a href="https://juejin.cn/user/13673577331607" target="_blank"
rel="noopener noreferrer" class="nav-link external">掘金</a>
</li>
</ul>
</div>
</div>
<div class="nav-item">
<div class="dropdown-wrapper open">
<a class="dropdown-title">
<span>Links</span>
<span class="arrow down"></span>
</a>
<ul class="nav-dropdown">
<li class="dropdown-item">
<a href="http://www.apache.org/" target="_blank"
rel="noopener noreferrer" class="nav-link external">
Apache Software Foundation
</a>
</li>
<li class="dropdown-item">
<a href="https://github.com/apache/skywalking/issues"
target="_blank" rel="noopener noreferrer"
class="nav-link external">
GitHub Issue Tracker
</a>
</li>
<li class="dropdown-item">
<a href="https://lists.apache.org/list.html?dev@skywalking.apache.org" target="_blank"
rel="noopener noreferrer" class="nav-link external">
Dev Mailing List
</a>
</li>
<li class="dropdown-item">
<a href="http://www.apache.org/licenses/" target="_blank"
rel="noopener noreferrer" class="nav-link external">
License
</a>
</li>
<li class="dropdown-item">
<a href="http://www.apache.org/events/current-event"
target="_blank" rel="noopener noreferrer"
class="nav-link external">
Apache Events
</a>
</li>
<li class="dropdown-item">
<a href="http://www.apache.org/security/" target="_blank"
rel="noopener noreferrer" class="nav-link external">
Security
</a>
</li>
<li class="dropdown-item">
<a href="http://www.apache.org/foundation/sponsorship.html"
target="_blank" rel="noopener noreferrer"
class="nav-link external">
Sponsorship and Donate
</a>
</li>
<li class="dropdown-item">
<a href="http://www.apache.org/foundation/thanks.html"
target="_blank" rel="noopener noreferrer"
class="nav-link external">
Thanks
</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<script src="/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@docsearch/js@3"></script>
<script src="/js/main.min.dc00f5ca911ee5aa105ea6de6b3b7e8d8169ba5a3bf156b1fcfe23dfe3e62b0a.js" integrity="sha256-3AD1ypEe5aoQXqbeazt&#43;jYFpulo78Vax/P4j3&#43;PmKwo=" crossorigin="anonymous"></script>
<script src="/js/mermaid.min.js"></script>
<script>
window.onload = () => mermaid.init(undefined, ".language-mermaid");
</script>
<script defer
src="https://widget.kapa.ai/kapa-widget.bundle.js"
data-website-id="8a08392b-9c4d-4816-8bc4-f93e0ecdd2a7"
data-project-name="SkyWalking"
data-project-color="#2B74B8"
data-button-text="Ask AI"
data-search-mode-enabled="true"
data-modal-open-on-command-k="true"
data-modal-disclaimer="The AI supports multiple languages, but it may not be accessible in China, a proxy is required."
data-project-logo="https://miro.medium.com/v2/resize:fit:2400/0*kmS-5BQ8ShAhZ_F4.jpg"
data-modal-example-questions="What is Apache SkyWalking?,How to deploy SkyWalking?,How to inject agents non-intrusively?,How to setup trace sampling?"
data-button-position-top=""
data-button-position-right="20px"
data-button-position-bottom="200px"
data-button-position-left=""
></script>
</body>
<script>
$(function (){
$('.doc-menu-button').on('click',function (){
$('.td-sidebar').toggleClass('active')
})
$('.version-select').on('change', function (){
var selectVersion = $(this).val().toLowerCase();
var prefix = '';
var url = location.href.replace(/(\/docs\/[a-zA-Z\-]+\/)([\w|\.]+)(\/.*)/, function (match, p1, p2, p3){
prefix = p1 + selectVersion;
return p1 + selectVersion + p3
})
go2SelectVersion(url, prefix)
})
function go2SelectVersion(url, prefix){
$.ajax({
url: url,
type: "get",
success:function(){
location.href = url;
},
statusCode: {
404:function(){
location.href = prefix + '/readme/';
}
}
});
}
})
</script>
</html>