diff --git a/.bazelrc b/.bazelrc
index 66d96a61b5..bd9e2fd766 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -1,7 +1,10 @@
+build --verbose_failures
+
build --define=with_glog=true --define=libunwind=true
build --copt -DHAVE_ZLIB=1 --copt -DGFLAGS_NS=google --copt -DUSE_BTHREAD_MUTEX
build --cxxopt -Wno-error=format-security
build:gcc7-later --cxxopt -faligned-new
build --incompatible_blacklisted_protos_requires_proto_info=false
build --copt=-fdiagnostics-color=always
-run --copt=-fdiagnostics-color=always
\ No newline at end of file
+
+run --copt=-fdiagnostics-color=always
diff --git a/.gitignore b/.gitignore
index 60718543d4..1a66484ca7 100755
--- a/.gitignore
+++ b/.gitignore
@@ -147,3 +147,22 @@ tools-v2/proto/curvefs/*
tools-v2/*/*.test
tools-v2/__debug_bin
tools-v2/vendor/
+
+.test
+.note
+.playground
+.dumpfile
+metastore_test.dat
+GPATH
+GRTAGS
+GTAGS
+core.*
+
+test/integration/*.conf
+test/integration/client/config/client.conf*
+test/integration/snapshotcloneserver/config/*.conf
+
+.pre-commit-config.yaml
+
+*.deb
+*.whl
diff --git a/.obm.cfg b/.obm.cfg
new file mode 100644
index 0000000000..93bee71c49
--- /dev/null
+++ b/.obm.cfg
@@ -0,0 +1,2 @@
+container_name: curve-build-playground-master
+container_image: opencurvedocker/curve-base:build-debian9
diff --git a/Makefile b/Makefile
index a2d112ce41..7204e6347e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# Copyright (C) 2021 Jingli Chen (Wine93), NetEase Inc.
-.PHONY: list build dep install image
+.PHONY: list build dep install image playground check test
stor?=""
prefix?= "$(PWD)/projects"
@@ -70,3 +70,12 @@ install:
image:
@bash util/image.sh $(stor) $(tag) $(os)
+
+playground:
+ @bash util/playground.sh
+
+check:
+ @bash util/check.sh $(stor)
+
+test:
+ @bash util/test.sh $(stor) $(only)
diff --git a/README.md b/README.md
index c5ba925edb..1405e0be98 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,8 @@
**A cloud-native distributed storage system**
+**A sandbox project hosted by the CNCF Foundation**
+
#### English | [简体中文](README_cn.md)
### 📄 [Documents](https://github.com/opencurve/curve/tree/master/docs) || 🌐 [Official Website](https://www.opencurve.io/Curve/HOME) || 🏠 [Forum](https://ask.opencurve.io/t/topic/7)
@@ -156,7 +158,7 @@ Curve supports deployment in private and public cloud environments, and can also
-One of them, CurveFS shared file storage system, can be elasticly scaled to public cloud storage, which can provide users with greater capacity elasticity, lower cost, and better performance experience.
+One of them, CurveFS shared file storage system, can be elastically scaled to public cloud storage, which can provide users with greater capacity elasticity, lower cost, and better performance experience.
@@ -223,6 +225,7 @@ Please refer to the [Test environment configuration](docs/cn/测试环境配置
## Practical
- [CurveBS+NFS Build NFS Server](docs/practical/curvebs_nfs.md)
+- [CurveFS+MinIO S3 Gateway](https://github.com/opencurve/curve-meetup-slides/blob/main/PrePaper/2023/%E6%94%AF%E6%8C%81POSIX%E5%92%8CS3%E7%BB%9F%E4%B8%80%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E2%80%94%E2%80%94Curve%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9FS3%E7%BD%91%E5%85%B3%E9%83%A8%E7%BD%B2%E5%AE%9E%E8%B7%B5.md)
## Governance
See [Governance](https://github.com/opencurve/community/blob/master/GOVERNANCE.md).
diff --git a/README_cn.md b/README_cn.md
index b9aa22b211..12d4140388 100644
--- a/README_cn.md
+++ b/README_cn.md
@@ -4,7 +4,9 @@
-**A cloud-native distributed storage system**
+**云原生高性能分布式存储系统**
+
+**CNCF基金会的沙箱托管项目**
#### [English](README.md) | 简体中文
### 📄 [文档](https://github.com/opencurve/curve/tree/master/docs) || 🌐 [官网](https://www.opencurve.io/Curve/HOME) || 🏠 [论坛](https://ask.opencurve.io/t/topic/7)
@@ -225,6 +227,7 @@ $ ./fio --thread --rw=randwrite --bs=4k --ioengine=nebd --nebd=cbd:pool//pfstest
## 最佳实践
- [CurveBS+NFS搭建NFS存储](docs/practical/curvebs_nfs.md)
+- [CurveFS+S3网关部署实践](https://github.com/opencurve/curve-meetup-slides/blob/main/PrePaper/2023/%E6%94%AF%E6%8C%81POSIX%E5%92%8CS3%E7%BB%9F%E4%B8%80%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E2%80%94%E2%80%94Curve%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9FS3%E7%BD%91%E5%85%B3%E9%83%A8%E7%BD%B2%E5%AE%9E%E8%B7%B5.md)
## 行为守则
Curve 的行为守则遵循[CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)。
diff --git a/WORKSPACE b/WORKSPACE
index 5519360fa9..27eed28365 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -228,6 +228,24 @@ http_archive(
sha256 = "59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f",
)
+# fmt
+http_archive(
+ name = "fmt",
+ url = "https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz",
+ sha256 = "5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2",
+ strip_prefix = "fmt-9.1.0",
+ build_file = "//:thirdparties/fmt.BUILD",
+)
+
+# spdlog
+http_archive(
+ name = "spdlog",
+ urls = ["https://github.com/gabime/spdlog/archive/refs/tags/v1.11.0.tar.gz"],
+ strip_prefix = "spdlog-1.11.0",
+ sha256 = "ca5cae8d6cac15dae0ec63b21d6ad3530070650f68076f3a4a862ca293a858bb",
+ build_file = "//:thirdparties/spdlog.BUILD",
+)
+
# Bazel platform rules.
http_archive(
name = "platforms",
@@ -248,14 +266,14 @@ new_local_repository(
http_archive(
name = "hedron_compile_commands",
- # Replace the commit hash in both places (below) with the latest, rather than using the stale one here.
+ # Replace the commit hash in both places (below) with the latest, rather than using the stale one here.
# Even better, set up Renovate and let it do the work for you (see "Suggestion: Updates" in the README).
urls = [
"https://curve-build.nos-eastchina1.126.net/bazel-compile-commands-extractor-af9af15f7bc16fc3e407e2231abfcb62907d258f.tar.gz",
"https://github.com/hedronvision/bazel-compile-commands-extractor/archive/af9af15f7bc16fc3e407e2231abfcb62907d258f.tar.gz",
],
strip_prefix = "bazel-compile-commands-extractor-af9af15f7bc16fc3e407e2231abfcb62907d258f",
- # When you first run this tool, it'll recommend a sha256 hash to put here with a message like: "DEBUG: Rule 'hedron_compile_commands' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = ..."
+ # When you first run this tool, it'll recommend a sha256 hash to put here with a message like: "DEBUG: Rule 'hedron_compile_commands' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = ..."
)
load("@hedron_compile_commands//:workspace_setup.bzl", "hedron_compile_commands_setup")
hedron_compile_commands_setup()
diff --git a/buildfs.sh b/buildfs.sh
index b34d1b86dc..ddde2cc641 100755
--- a/buildfs.sh
+++ b/buildfs.sh
@@ -7,12 +7,22 @@ then
exit
fi
+if [ `gcc -dumpversion | awk -F'.' '{print $1}'` -le 6 ]
+then
+ bazelflags=''
+else
+ bazelflags='--copt -faligned-new'
+fi
+
if [ "$1" = "debug" ]
then
DEBUG_FLAG="--compilation_mode=dbg"
fi
-bazel build curvefs/... --copt -DHAVE_ZLIB=1 ${DEBUG_FLAG} -s --define=with_glog=true --define=libunwind=true --copt -DGFLAGS_NS=google --copt -Wno-error=format-security --copt -DUSE_BTHREAD_MUTEX --copt -DCURVEVERSION=${curve_version} --linkopt -L/usr/local/lib
+bazel build curvefs/... --copt -DHAVE_ZLIB=1 ${DEBUG_FLAG} -s \
+--define=with_glog=true --define=libunwind=true --copt -DGFLAGS_NS=google --copt -Wno-error=format-security --copt \
+-DUSE_BTHREAD_MUTEX --copt -DCURVEVERSION=${curve_version} --linkopt -L/usr/local/lib ${bazelflags}
+
if [ $? -ne 0 ]
then
echo "build curvefs failed"
@@ -34,4 +44,5 @@ then
echo "mds_test failed"
exit
fi
-fi
\ No newline at end of file
+fi
+echo "end compile"
diff --git a/conf/mds.conf b/conf/mds.conf
index f02634ffe5..6d3c54c825 100644
--- a/conf/mds.conf
+++ b/conf/mds.conf
@@ -156,7 +156,7 @@ mds.topology.CreateCopysetRpcRetryTimes=20
# 请求chunkserver上创建copyset重试间隔
mds.topology.CreateCopysetRpcRetrySleepTimeMs=1000
# Topology模块刷新metric时间间隔
-mds.topology.UpdateMetricIntervalSec=60
+mds.topology.UpdateMetricIntervalSec=10
#和mds.chunkserver.failure.tolerance设置有关,一个zone 标准配置20台节点,如果允许3台节点failover,
#那么剩余17台机器需要承载原先20台机器的空间,17/20=0.85,即使用量超过这个值即不再往这个池分配,
#具体分为来两种情况, 当不使用chunkfilepool,物理池限制使用百分比,当使用 chunkfilepool 进行chunkfilepool分配时需预留failover空间,
@@ -237,3 +237,16 @@ mds.throttle.iopsPerGB=30
mds.throttle.bpsMinInMB=120
mds.throttle.bpsMaxInMB=260
mds.throttle.bpsPerGBInMB=0.3
+
+#
+## poolset rules
+#
+# for backward compatibility, rules are applied for select poolset when creating file
+#
+# for example
+# mds.poolset.rules=/dir1/:poolset1;/dir2/:poolset2;/dir1/sub/:sub
+#
+# when creating file reqeust doesn't have poolset, above rules are used to select poolset
+# - if filename is /dir1/file, then poolset1 is select
+# - if filename is /dir1/sub/file, then sub is select
+mds.poolset.rules=
diff --git a/curvefs/conf/client.conf b/curvefs/conf/client.conf
index 01dc2a46ee..d5c1a4f0fd 100644
--- a/curvefs/conf/client.conf
+++ b/curvefs/conf/client.conf
@@ -77,17 +77,7 @@ rpc.healthCheckIntervalSec=0
#### fuseClient
# TODO(xuchaojie): add unit
-fuseClient.attrTimeOut=1.0
-fuseClient.entryTimeOut=1.0
fuseClient.listDentryLimit=65536
-fuseClient.flushPeriodSec=5
-fuseClient.maxNameLength=255
-fuseClient.iCacheLruSize=65536
-fuseClient.dCacheLruSize=1000000
-fuseClient.enableICacheMetrics=true
-fuseClient.enableDCacheMetrics=true
-fuseClient.lruTimeOutSec=60
-fuseClient.cto=true
fuseClient.downloadMaxRetryTimes=3
### kvcache opt
@@ -114,6 +104,61 @@ fuseClient.maxDataSize=1024
fuseClient.refreshDataIntervalSec=30
fuseClient.warmupThreadsNum=10
+# the write throttle bps of fuseClient, default no limit
+fuseClient.throttle.avgWriteBytes=0
+# the write burst bps of fuseClient, default no limit
+fuseClient.throttle.burstWriteBytes=0
+# the times that write burst bps can continue, default 180s
+fuseClient.throttle.burstWriteBytesSecs=180
+
+# the write throttle iops of fuseClient, default no limit
+fuseClient.throttle.avgWriteIops=0
+# the write burst iops of fuseClient, default no limit
+fuseClient.throttle.burstWriteIops=0
+# the times that write burst Iops can continue, default 180s
+fuseClient.throttle.burstWriteIopsSecs=180
+
+# the read throttle bps of fuseClient, default no limit
+fuseClient.throttle.avgReadBytes=0
+# the read burst bps of fuseClient, default no limit
+fuseClient.throttle.burstReadBytes=0
+# the times that read burst bps can continue, default 180s
+fuseClient.throttle.burstReadBytesSecs=180
+
+# the read throttle iops of fuseClient, default no limit
+fuseClient.throttle.avgReadIops=0
+# the read burst Iops of fuseClient, default no limit
+fuseClient.throttle.burstReadIops=0
+# the times that read burst Iops can continue, default 180s
+fuseClient.throttle.burstReadIopsSecs=180
+
+#### filesystem metadata
+# {
+# fs.disableXattr:
+# if you want to get curvefs specified xattr,
+# you can mount another fs with |fs.disableXattr| is true
+#
+# fs.lookupCache.negativeTimeoutSec:
+# entry which not found will be cached if |timeout| > 0
+fs.cto=true
+fs.maxNameLength=255
+fs.disableXattr=true
+fs.accessLogging=true
+fs.kernelCache.attrTimeoutSec=3600
+fs.kernelCache.dirAttrTimeoutSec=3600
+fs.kernelCache.entryTimeoutSec=3600
+fs.kernelCache.dirEntryTimeoutSec=3600
+fs.lookupCache.negativeTimeoutSec=0
+fs.lookupCache.minUses=1
+fs.lookupCache.lruSize=100000
+fs.dirCache.lruSize=5000000
+fs.openFile.lruSize=65536
+fs.attrWatcher.lruSize=5000000
+fs.rpc.listDentryLimit=65536
+fs.deferSync.delay=3
+fs.deferSync.deferDirMtime=false
+# }
+
#### volume
volume.bigFileSize=1048576
volume.volBlockSize=4096
@@ -135,8 +180,6 @@ volume.blockGroup.allocateOnce=4
#### s3
# this is for test. if s3.fakeS3=true, all data will be discarded
s3.fakeS3=false
-# the max size that fuse send
-s3.fuseMaxSize=131072
s3.pageSize=65536
# prefetch blocks that disk cache use
s3.prefetchBlocks=1
@@ -151,8 +194,11 @@ s3.baseSleepUs=500
s3.threadScheduleInterval=3
# data cache flush wait time
s3.cacheFlushIntervalSec=5
+# write cache < 8,388,608 (8MB) is not allowed
s3.writeCacheMaxByte=838860800
s3.readCacheMaxByte=209715200
+# file cache read thread num
+s3.readCacheThreads=5
# http = 0, https = 1
s3.http_scheme=0
s3.verify_SSL=False
diff --git a/curvefs/conf/metaserver.conf b/curvefs/conf/metaserver.conf
index 3c413f6164..9c158f0a89 100644
--- a/curvefs/conf/metaserver.conf
+++ b/curvefs/conf/metaserver.conf
@@ -128,16 +128,25 @@ copyset.trash.scan_periodsec=120
# this config item should be tuned according cpu/memory/disk
service.max_inflight_request=5000
-### apply queue options for each copyset
-### apply queue is used to isolate raft threads, each worker has its own queue
-### when a task can be applied it's been pushed into a corresponding worker queue by certain rules
-# number of apply queue workers for each, each worker will start a indepent thread
-applyqueue.worker_count=3
+#
+# Concurrent apply queue
+### concurrent apply queue options for each copyset
+### concurrent apply queue is used to isolate raft threads, each worker has its own queue
+### when a task can be applied it's been pushed into a corresponding read/write worker queue by certain rules
-# apply queue depth for each copyset
+# worker_count: number of apply queue workers for each, each worker will start a indepent thread
+# queue_depth: apply queue depth for each copyset
# all tasks in queue must be done when do raft snapshot, and raft apply and raft snapshot are executed in same thread
# so, if queue depth is too large, it will cause other tasks to wait too long for apply
-applyqueue.queue_depth=1
+# write apply queue workers count
+applyqueue.write_worker_count=3
+# write apply queue depth
+applyqueue.write_queue_depth=1
+# read apply queue workers count
+applyqueue.read_worker_count=2
+# read apply queue depth
+applyqueue.read_queue_depth=1
+
# number of worker threads that created by brpc::Server
# if set to |auto|, threads create by brpc::Server is equal to `getconf _NPROCESSORS_ONLN` + 1
diff --git a/curvefs/conf/tools.conf b/curvefs/conf/tools.conf
index 52cbf70590..d911b3e67b 100644
--- a/curvefs/conf/tools.conf
+++ b/curvefs/conf/tools.conf
@@ -35,6 +35,9 @@ s3.bucket_name=bucket
s3.blocksize=4194304
s3.chunksize=67108864
s3.useVirtualAddressing=false
+# s3 objectPrefix, if set 0, means no prefix, if set 1, means inode prefix
+# if set 2 and other values mean hash prefix
+s3.objectPrefix=0
# statistic info in xattr, hardlink will not be supported when enable
enableSumInDir=true
diff --git a/curvefs/docker/debian9/Dockerfile b/curvefs/docker/debian9/Dockerfile
index 166fec558c..1c61148e82 100644
--- a/curvefs/docker/debian9/Dockerfile
+++ b/curvefs/docker/debian9/Dockerfile
@@ -4,5 +4,5 @@ COPY curvefs /curvefs
COPY libmemcached.so libmemcached.so.11 libhashkit.so.2 /usr/lib/
RUN mkdir -p /etc/curvefs /core /etc/curve && chmod a+x /entrypoint.sh \
&& cp /curvefs/tools/sbin/curvefs_tool /usr/bin \
- && cp curvefs/tools-v2/sbin/curve /usr/bin/
+ && cp /curvefs/tools-v2/sbin/curve /usr/bin/
ENTRYPOINT ["/entrypoint.sh"]
diff --git a/curvefs/docker/debian9/entrypoint.sh b/curvefs/docker/debian9/entrypoint.sh
index e95e09ed6d..0ca397dace 100755
--- a/curvefs/docker/debian9/entrypoint.sh
+++ b/curvefs/docker/debian9/entrypoint.sh
@@ -8,6 +8,7 @@ g_args=""
g_prefix=""
g_binary=""
g_start_args=""
+g_preexec="/curvefs/tools-v2/sbin/daemon"
############################ BASIC FUNCTIONS
function msg() {
@@ -119,6 +120,7 @@ function main() {
prepare
create_directory
[[ $(command -v crontab) ]] && cron
+ [[ ! -z $g_preexec ]] && $g_preexec &
if [ $g_role == "etcd" ]; then
exec $g_binary $g_start_args >>$g_prefix/logs/etcd.log 2>&1
elif [ $g_role == "monitor" ]; then
diff --git a/curvefs/monitor/grafana/provisioning/dashboards/client.json b/curvefs/monitor/grafana/provisioning/dashboards/client.json
index bda858e2e5..a160f44f88 100644
--- a/curvefs/monitor/grafana/provisioning/dashboards/client.json
+++ b/curvefs/monitor/grafana/provisioning/dashboards/client.json
@@ -3,7 +3,10 @@
"list": [
{
"builtIn": 1,
- "datasource": "-- Grafana --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
@@ -20,15 +23,17 @@
},
"description": "Curvefs client",
"editable": true,
- "gnetId": null,
+ "fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 3,
- "iteration": 1657691847424,
"links": [],
+ "liveNow": false,
"panels": [
{
- "collapsed": false,
- "datasource": null,
+ "collapsed": true,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -36,257 +41,15 @@
"y": 0
},
"id": 6,
- "panels": [],
- "title": "process usage",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 1
- },
- "hiddenSeries": false,
- "id": 4,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_memory_resident{instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "process_memory_resident {{instance}}",
- "refId": "process_memory_resident"
- },
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_memory_virtual{instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "process_memory_virtual {{instance}}",
- "refId": "process_memory_virtual"
- },
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_memory_shared{instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "process_memory_shared {{instance}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "process memory usage",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:63",
- "format": "decbytes",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:64",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 1
- },
- "hiddenSeries": false,
- "id": 2,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_cpu_usage{instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "process_cpu_usage {{instance}}",
- "refId": "process_cpu_usage"
- },
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_cpu_usage_system{instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "process_cpu_usage_system {{instance}}",
- "refId": "process_cpu_usage_system"
- },
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "process_cpu_usage_user{instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "process_cpu_usage_user {{instance}}",
- "refId": "process_cpu_usage_user"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "process cpu usage",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:495",
- "format": "percentunit",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:496",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "collapsed": true,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 9
- },
- "id": 85,
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "µs"
- },
- "overrides": []
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"fill": 1,
"fillGradient": 0,
@@ -294,10 +57,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 10
+ "y": 1
},
"hiddenSeries": false,
- "id": 107,
+ "id": 4,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -316,7 +79,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -326,18 +89,44 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_read_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "process_memory_resident{instance=~\"$instance\"}",
"interval": "",
- "legendFormat": "",
+ "legendFormat": "process_memory_resident {{instance}}",
+ "refId": "process_memory_resident"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "process_memory_virtual{instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "process_memory_virtual {{instance}}",
+ "refId": "process_memory_virtual"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "process_memory_shared{instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "process_memory_shared {{instance}}",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "read_latency",
+ "title": "process memory usage",
"tooltip": {
"shared": true,
"sort": 0,
@@ -345,33 +134,26 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
- "format": "µs",
- "label": null,
+ "$$hashKey": "object:63",
+ "format": "decbytes",
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
+ "$$hashKey": "object:64",
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -379,12 +161,9 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "µs"
- },
- "overrides": []
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"fill": 1,
"fillGradient": 0,
@@ -392,10 +171,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 10
+ "y": 1
},
"hiddenSeries": false,
- "id": 108,
+ "id": 2,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -403,6 +182,7 @@
"current": false,
"max": true,
"min": true,
+ "rightSide": false,
"show": true,
"total": false,
"values": true
@@ -414,7 +194,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -424,18 +204,44 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_write_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "process_cpu_usage{instance=~\"$instance\"}",
"interval": "",
- "legendFormat": "",
- "refId": "A"
+ "legendFormat": "process_cpu_usage {{instance}}",
+ "refId": "process_cpu_usage"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "process_cpu_usage_system{instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "process_cpu_usage_system {{instance}}",
+ "refId": "process_cpu_usage_system"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "process_cpu_usage_user{instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "process_cpu_usage_user {{instance}}",
+ "refId": "process_cpu_usage_user"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "write_latency",
+ "title": "process cpu usage",
"tooltip": {
"shared": true,
"sort": 0,
@@ -443,41 +249,64 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
- "format": "µs",
- "label": null,
+ "$$hashKey": "object:495",
+ "format": "percentunit",
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
+ "$$hashKey": "object:496",
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
- },
+ }
+ ],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "process usage",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 85,
+ "panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -490,10 +319,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 18
+ "y": 2
},
"hiddenSeries": false,
- "id": 87,
+ "id": 107,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -512,7 +341,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -522,18 +351,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_mk_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_read_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "mkdir_latency",
+ "title": "read_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -541,33 +372,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -575,7 +397,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -588,10 +413,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 18
+ "y": 2
},
"hiddenSeries": false,
- "id": 91,
+ "id": 108,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -610,7 +435,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -620,18 +445,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_rm_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_write_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "rmdir_latency",
+ "title": "write_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -639,33 +466,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -673,7 +491,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -686,10 +507,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 26
+ "y": 10
},
"hiddenSeries": false,
- "id": 88,
+ "id": 87,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -708,7 +529,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -718,18 +539,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_create_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_mk_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "create_latency",
+ "title": "mkdir_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -737,33 +560,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -771,7 +585,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -784,10 +601,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 26
+ "y": 10
},
"hiddenSeries": false,
- "id": 92,
+ "id": 91,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -806,7 +623,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -816,18 +633,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_unlink_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_rm_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "unlink_latency",
+ "title": "rmdir_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -835,33 +654,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -869,7 +679,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -882,10 +695,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 34
+ "y": 18
},
"hiddenSeries": false,
- "id": 89,
+ "id": 88,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -904,7 +717,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -914,18 +727,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_open_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_create_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "open_latency",
+ "title": "create_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -933,33 +748,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -967,7 +773,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -980,10 +789,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 34
+ "y": 18
},
"hiddenSeries": false,
- "id": 90,
+ "id": 92,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1002,7 +811,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -1012,18 +821,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_release_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_unlink_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "release_latency",
+ "title": "unlink_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1031,33 +842,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1065,7 +867,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1078,10 +883,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 42
+ "y": 26
},
"hiddenSeries": false,
- "id": 93,
+ "id": 89,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1100,7 +905,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -1110,18 +915,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_open_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_open_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "opendir_latency",
+ "title": "open_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1129,33 +936,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1163,7 +961,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1176,10 +977,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 42
+ "y": 26
},
"hiddenSeries": false,
- "id": 94,
+ "id": 90,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1198,7 +999,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.4.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -1208,18 +1009,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_release_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_release_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "releasedir_latency",
+ "title": "release_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1227,33 +1030,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1261,7 +1055,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1274,10 +1071,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 50
+ "y": 34
},
"hiddenSeries": false,
- "id": 99,
+ "id": 93,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1306,18 +1103,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_read_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_open_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "readdir_latency",
+ "title": "opendir_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1325,33 +1124,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1359,7 +1149,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1372,10 +1165,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 50
+ "y": 34
},
"hiddenSeries": false,
- "id": 100,
+ "id": 94,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1404,18 +1197,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_read_link_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_release_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "readlink_latency",
+ "title": "releasedir_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1423,33 +1218,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1457,7 +1243,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1470,10 +1259,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 58
+ "y": 42
},
"hiddenSeries": false,
- "id": 95,
+ "id": 99,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1502,18 +1291,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_lookup_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_read_dir_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "lookup_latency",
+ "title": "readdir_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1521,33 +1312,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1555,7 +1337,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1568,10 +1353,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 58
+ "y": 42
},
"hiddenSeries": false,
- "id": 96,
+ "id": 100,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1600,18 +1385,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_mk_nod_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_read_link_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "mknod_latency",
+ "title": "readlink_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1619,33 +1406,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1653,7 +1431,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1666,10 +1447,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 66
+ "y": 50
},
"hiddenSeries": false,
- "id": 97,
+ "id": 95,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1698,18 +1479,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_link_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_lookup_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "link_latency",
+ "title": "lookup_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1717,33 +1500,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1751,7 +1525,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1764,10 +1541,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 66
+ "y": 50
},
"hiddenSeries": false,
- "id": 98,
+ "id": 96,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1796,18 +1573,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_symlink_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_mk_nod_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "symlink_latency",
+ "title": "mknod_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1815,33 +1594,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1849,7 +1619,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1862,10 +1635,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 74
+ "y": 58
},
"hiddenSeries": false,
- "id": 101,
+ "id": 97,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1894,18 +1667,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_get_attr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_link_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "getattr_latency",
+ "title": "link_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1913,33 +1688,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -1947,7 +1713,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -1960,10 +1729,10 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 74
+ "y": 58
},
"hiddenSeries": false,
- "id": 102,
+ "id": 98,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -1992,18 +1761,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_set_attr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_symlink_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "setattr_latency",
+ "title": "symlink_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -2011,33 +1782,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -2045,7 +1807,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -2058,10 +1823,10 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 82
+ "y": 66
},
"hiddenSeries": false,
- "id": 103,
+ "id": 101,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -2090,18 +1855,20 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
- "expr": "{__name__=~\"curvefs_client_op_get_xattr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "expr": "{__name__=~\"curvefs_client_op_get_attr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
- "title": "getxattr_latency",
+ "title": "getattr_latency",
"tooltip": {
"shared": true,
"sort": 0,
@@ -2109,33 +1876,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -2143,7 +1901,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -2156,10 +1917,198 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 82
+ "y": 66
},
"hiddenSeries": false,
- "id": 104,
+ "id": 102,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "8.0.6",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_client_op_set_attr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "setattr_latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "µs"
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 74
+ },
+ "hiddenSeries": false,
+ "id": 103,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "8.0.6",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_client_op_get_xattr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "getxattr_latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "µs",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "µs"
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 74
+ },
+ "hiddenSeries": false,
+ "id": 104,
"interval": "1s",
"legend": {
"alignAsTable": true,
@@ -2188,6 +2137,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_client_op_list_xattr_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
@@ -2196,9 +2149,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "listxattr_latency",
"tooltip": {
"shared": true,
@@ -2207,33 +2158,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -2241,7 +2183,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -2254,7 +2199,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 90
+ "y": 82
},
"hiddenSeries": false,
"id": 105,
@@ -2286,6 +2231,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_client_op_fsync_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
@@ -2294,9 +2243,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "fsync_latency",
"tooltip": {
"shared": true,
@@ -2305,33 +2252,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -2339,7 +2277,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -2352,7 +2293,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 90
+ "y": 82
},
"hiddenSeries": false,
"id": 106,
@@ -2384,6 +2325,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_client_op_flush_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
@@ -2392,9 +2337,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "flush_latency",
"tooltip": {
"shared": true,
@@ -2403,33 +2346,24 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
},
{
@@ -2437,7 +2371,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -2450,7 +2387,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 98
+ "y": 90
},
"hiddenSeries": false,
"id": 109,
@@ -2482,6 +2419,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_client_op_rename_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"interval": "",
@@ -2490,9 +2431,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "rename_latency",
"tooltip": {
"shared": true,
@@ -2501,47 +2440,50 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "µs",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "op latency",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 10
+ "y": 2
},
"id": 176,
"panels": [
@@ -2550,7 +2492,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -2563,7 +2508,7 @@
"h": 8,
"w": 24,
"x": 0,
- "y": 11
+ "y": 43
},
"hiddenSeries": false,
"id": 177,
@@ -2595,6 +2540,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_client_op_[[op:regex]]_inflight_num\", instance=~\"$instance\"}",
"interval": "",
@@ -2603,9 +2552,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "op _inflight_num",
"tooltip": {
"shared": true,
@@ -2614,47 +2561,50 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
},
{
"format": "short",
- "label": null,
"logBase": 1,
- "max": null,
- "min": null,
"show": true
}
],
"yaxis": {
- "align": false,
- "alignLevel": null
+ "align": false
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "op inflight number",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 11
+ "y": 3
},
"id": 47,
"panels": [
@@ -2663,7 +2613,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -2676,7 +2629,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 12
+ "y": 44
},
"hiddenSeries": false,
"id": 48,
@@ -2709,7 +2662,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_.*[[fs:regex]]_user_read_qps\", instance=~\"$instance\"}",
@@ -2719,9 +2673,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_qps",
"tooltip": {
"shared": true,
@@ -2730,9 +2682,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -2759,7 +2709,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -2772,7 +2725,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 12
+ "y": 44
},
"hiddenSeries": false,
"id": 49,
@@ -2805,7 +2758,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_.*[[fs:regex]]_user_write_qps\", instance=~\"$instance\"}",
@@ -2815,9 +2769,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_qps",
"tooltip": {
"shared": true,
@@ -2826,9 +2778,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -2855,7 +2805,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -2868,7 +2821,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 20
+ "y": 52
},
"hiddenSeries": false,
"id": 50,
@@ -2901,7 +2854,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_read_bps\", instance=~\"$instance\"}",
@@ -2911,9 +2865,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_bps",
"tooltip": {
"shared": true,
@@ -2922,9 +2874,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -2951,7 +2901,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -2964,7 +2917,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 20
+ "y": 52
},
"hiddenSeries": false,
"id": 51,
@@ -2997,7 +2950,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_write_bps\", instance=~\"$instance\"}",
@@ -3007,9 +2961,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_bps",
"tooltip": {
"shared": true,
@@ -3018,9 +2970,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3047,7 +2997,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -3060,7 +3013,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 28
+ "y": 60
},
"hiddenSeries": false,
"id": 52,
@@ -3093,7 +3046,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_read_eps\", instance=~\"$instance\"}",
@@ -3103,9 +3057,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_eps",
"tooltip": {
"shared": true,
@@ -3114,9 +3066,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3143,14 +3093,17 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
- "y": 28
+ "y": 60
},
"hiddenSeries": false,
"id": 53,
@@ -3183,7 +3136,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_adaptor_write_eps\", instance=~\"$instance\"}",
@@ -3193,9 +3147,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_eps",
"tooltip": {
"shared": true,
@@ -3204,9 +3156,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3233,7 +3183,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "reqps"
@@ -3246,7 +3199,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 36
+ "y": 68
},
"hiddenSeries": false,
"id": 54,
@@ -3279,7 +3232,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_read_rps\", instance=~\"$instance\"}",
@@ -3289,9 +3243,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_rps",
"tooltip": {
"shared": true,
@@ -3300,9 +3252,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3329,7 +3279,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "reqps"
@@ -3342,7 +3295,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 36
+ "y": 68
},
"hiddenSeries": false,
"id": 43,
@@ -3375,7 +3328,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_write_rps\", instance=~\"$instance\"}",
@@ -3385,9 +3339,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_rps",
"tooltip": {
"shared": true,
@@ -3396,9 +3348,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3425,7 +3375,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -3438,7 +3391,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 44
+ "y": 76
},
"hiddenSeries": false,
"id": 56,
@@ -3471,7 +3424,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_read_io_size\", instance=~\"$instance\"}",
@@ -3481,9 +3435,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_io_size",
"tooltip": {
"shared": true,
@@ -3492,9 +3444,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3521,7 +3471,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -3534,7 +3487,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 44
+ "y": 76
},
"hiddenSeries": false,
"id": 57,
@@ -3567,7 +3520,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_write_io_size\", instance=~\"$instance\"}",
@@ -3577,9 +3531,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_io_size",
"tooltip": {
"shared": true,
@@ -3588,9 +3540,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3617,7 +3567,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -3630,7 +3583,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 52
+ "y": 84
},
"hiddenSeries": false,
"id": 58,
@@ -3662,6 +3615,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_read_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"hide": false,
@@ -3671,9 +3628,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_latency",
"tooltip": {
"shared": true,
@@ -3682,9 +3637,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3711,7 +3664,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -3724,7 +3680,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 52
+ "y": 84
},
"hiddenSeries": false,
"id": 59,
@@ -3756,6 +3712,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs.*[[fs:regex]]_user_write_lat_[[quantile:regex]]\", instance=~\"$instance\"}",
"hide": false,
@@ -3765,9 +3725,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_latency",
"tooltip": {
"shared": true,
@@ -3776,9 +3734,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3801,17 +3757,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "client interface performance",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 12
+ "y": 4
},
"id": 8,
"panels": [
@@ -3820,7 +3788,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -3833,7 +3804,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 13
+ "y": 45
},
"hiddenSeries": false,
"id": 10,
@@ -3866,7 +3837,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_qps\", job=\"client\", instance=~\"$instance\"}",
@@ -3876,9 +3848,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_qps",
"tooltip": {
"shared": true,
@@ -3887,9 +3857,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -3916,7 +3884,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -3929,7 +3900,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 13
+ "y": 45
},
"hiddenSeries": false,
"id": 11,
@@ -3962,7 +3933,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_qps\", instance=~\"$instance\"}",
@@ -3972,9 +3944,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_qps",
"tooltip": {
"shared": true,
@@ -3983,9 +3953,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4012,7 +3980,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -4025,7 +3996,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 21
+ "y": 53
},
"hiddenSeries": false,
"id": 12,
@@ -4058,7 +4029,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_bps\", instance=~\"$instance\"}",
@@ -4068,9 +4040,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_bps",
"tooltip": {
"shared": true,
@@ -4079,9 +4049,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4108,7 +4076,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -4121,7 +4092,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 21
+ "y": 53
},
"hiddenSeries": false,
"id": 13,
@@ -4154,7 +4125,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_bps\", instance=~\"$instance\"}",
@@ -4164,9 +4136,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_bps",
"tooltip": {
"shared": true,
@@ -4175,9 +4145,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4204,7 +4172,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -4217,7 +4188,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 29
+ "y": 61
},
"hiddenSeries": false,
"id": 14,
@@ -4250,7 +4221,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_eps\", instance=~\"$instance\"}",
@@ -4260,9 +4232,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_eps",
"tooltip": {
"shared": true,
@@ -4271,9 +4241,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4300,14 +4268,17 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
- "y": 29
+ "y": 61
},
"hiddenSeries": false,
"id": 15,
@@ -4340,7 +4311,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_eps\", instance=~\"$instance\"}",
@@ -4350,9 +4322,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_eps",
"tooltip": {
"shared": true,
@@ -4361,9 +4331,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4390,7 +4358,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "reqps"
@@ -4403,7 +4374,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 37
+ "y": 69
},
"hiddenSeries": false,
"id": 42,
@@ -4436,7 +4407,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_rps\", instance=~\"$instance\"}",
@@ -4446,9 +4418,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_rps",
"tooltip": {
"shared": true,
@@ -4457,9 +4427,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4486,7 +4454,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "reqps"
@@ -4499,7 +4470,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 37
+ "y": 69
},
"hiddenSeries": false,
"id": 55,
@@ -4532,7 +4503,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_rps\", instance=~\"$instance\"}",
@@ -4542,9 +4514,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_rps",
"tooltip": {
"shared": true,
@@ -4553,9 +4523,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4582,7 +4550,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -4595,7 +4566,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 45
+ "y": 77
},
"hiddenSeries": false,
"id": 60,
@@ -4628,7 +4599,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_size\", instance=~\"$instance\"}",
@@ -4638,9 +4610,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_io_size",
"tooltip": {
"shared": true,
@@ -4649,9 +4619,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4678,7 +4646,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -4691,7 +4662,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 45
+ "y": 77
},
"hiddenSeries": false,
"id": 61,
@@ -4724,7 +4695,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_size\", instance=~\"$instance\"}",
@@ -4734,9 +4706,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_io_size",
"tooltip": {
"shared": true,
@@ -4745,9 +4715,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4774,7 +4742,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -4787,7 +4758,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 53
+ "y": 85
},
"hiddenSeries": false,
"id": 26,
@@ -4819,6 +4790,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
"hide": false,
@@ -4828,9 +4803,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_latency",
"tooltip": {
"shared": true,
@@ -4839,9 +4812,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4868,7 +4839,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -4881,7 +4855,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 53
+ "y": 85
},
"hiddenSeries": false,
"id": 27,
@@ -4913,6 +4887,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
"hide": false,
@@ -4922,9 +4900,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_latency",
"tooltip": {
"shared": true,
@@ -4933,9 +4909,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -4958,17 +4932,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "s3_adaptor r/w performance",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 13
+ "y": 5
},
"id": 72,
"panels": [
@@ -4977,7 +4963,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -4990,7 +4979,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 14
+ "y": 46
},
"hiddenSeries": false,
"id": 73,
@@ -5023,7 +5012,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_disk_cache_qps\", instance=~\"$instance\"}",
@@ -5033,9 +5023,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_diskcache_qps",
"tooltip": {
"shared": true,
@@ -5044,9 +5032,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5073,7 +5059,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -5086,7 +5075,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 14
+ "y": 46
},
"hiddenSeries": false,
"id": 74,
@@ -5119,7 +5108,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_disk_cache_qps\", instance=~\"$instance\"}",
@@ -5129,9 +5119,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_diskcache_qps",
"tooltip": {
"shared": true,
@@ -5140,9 +5128,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5169,7 +5155,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -5182,7 +5171,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 22
+ "y": 54
},
"hiddenSeries": false,
"id": 75,
@@ -5215,7 +5204,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_disk_cache_bps\", instance=~\"$instance\"}",
@@ -5225,9 +5215,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_diskcache_bps",
"tooltip": {
"shared": true,
@@ -5236,9 +5224,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5265,7 +5251,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -5278,7 +5267,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 22
+ "y": 54
},
"hiddenSeries": false,
"id": 76,
@@ -5311,7 +5300,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_disk_cache_bps\", instance=~\"$instance\"}",
@@ -5321,9 +5311,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_diskcache_bps",
"tooltip": {
"shared": true,
@@ -5332,9 +5320,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5361,7 +5347,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -5374,7 +5363,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 30
+ "y": 62
},
"hiddenSeries": false,
"id": 77,
@@ -5406,6 +5395,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_disk_cache_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
"hide": false,
@@ -5415,9 +5408,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_diskcache_latency",
"tooltip": {
"shared": true,
@@ -5426,9 +5417,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5455,7 +5444,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -5468,7 +5460,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 30
+ "y": 62
},
"hiddenSeries": false,
"id": 78,
@@ -5500,6 +5492,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_disk_cache_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
"hide": false,
@@ -5509,9 +5505,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_diskcache_latency",
"tooltip": {
"shared": true,
@@ -5520,9 +5514,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -5545,604 +5537,633 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "s3_adaptor r/w diskcache performance",
"type": "row"
},
{
- "collapsed": true,
- "datasource": null,
+ "collapsed": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 14
+ "y": 6
},
"id": 69,
- "panels": [
+ "panels": [],
+ "targets": [
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "short"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 39
- },
- "hiddenSeries": false,
- "id": 62,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_qps\", instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "read_s3_qps",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "refId": "A"
+ }
+ ],
+ "title": "s3_adaptor r/w s3 performance",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "short"
},
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 7
+ },
+ "hiddenSeries": false,
+ "id": 62,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "short"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 39
- },
- "hiddenSeries": false,
- "id": 63,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_qps\", instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "write_s3_qps",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_qps\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "read_s3_qps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 7
+ },
+ "hiddenSeries": false,
+ "id": 63,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_qps\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "write_s3_qps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "binBps"
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 15
+ },
+ "hiddenSeries": false,
+ "id": 66,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_bps\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "read_s3_bps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "binBps",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "binBps"
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 15
+ },
+ "hiddenSeries": false,
+ "id": 65,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_bps\", instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "write_s3_bps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "binBps",
+ "logBase": 1,
+ "show": true
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "binBps"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 47
- },
- "hiddenSeries": false,
- "id": 66,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_bps\", instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "read_s3_bps",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "binBps",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "µs"
},
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 23
+ },
+ "hiddenSeries": false,
+ "id": 64,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "binBps"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 47
- },
- "hiddenSeries": false,
- "id": 65,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus"
- },
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_bps\", instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "write_s3_bps",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "binBps",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "read_s3_latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "µs",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "unit": "µs"
},
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 23
+ },
+ "hiddenSeries": false,
+ "id": 67,
+ "interval": "1s",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "9.4.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "µs"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 55
- },
- "hiddenSeries": false,
- "id": 64,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_read_s3_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "read_s3_latency",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "µs",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "exemplar": true,
+ "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "write_s3_latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:212",
+ "format": "µs",
+ "logBase": 1,
+ "show": true
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "unit": "µs"
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 55
- },
- "hiddenSeries": false,
- "id": 67,
- "interval": "1s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.0.6",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "exemplar": true,
- "expr": "{__name__=~\"curvefs_s3.*[[fs:regex]]_adaptor_write_s3_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "write_s3_latency",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:212",
- "format": "µs",
- "logBase": 1,
- "show": true
- },
- {
- "$$hashKey": "object:213",
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
+ "$$hashKey": "object:213",
+ "format": "short",
+ "logBase": 1,
+ "show": true
}
],
- "title": "s3_adaptor r/w s3 performance",
- "type": "row"
+ "yaxis": {
+ "align": false
+ }
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 15
+ "y": 31
},
"id": 80,
"panels": [
@@ -6151,7 +6172,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -6164,7 +6188,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 64
+ "y": 96
},
"hiddenSeries": false,
"id": 81,
@@ -6197,7 +6221,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_disk_cache.*[[fs:regex]]_write_s3_qps\", instance=~\"$instance\"}",
@@ -6207,9 +6232,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_s3_qps",
"tooltip": {
"shared": true,
@@ -6218,9 +6241,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6247,7 +6268,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "binBps"
@@ -6260,7 +6284,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 64
+ "y": 96
},
"hiddenSeries": false,
"id": 82,
@@ -6293,7 +6317,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_disk_cache.*[[fs:regex]]_write_s3_bps\", instance=~\"$instance\"}",
@@ -6303,9 +6328,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_s3_bps",
"tooltip": {
"shared": true,
@@ -6314,9 +6337,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6343,7 +6364,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -6356,7 +6380,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 72
+ "y": 104
},
"hiddenSeries": false,
"id": 83,
@@ -6388,6 +6412,10 @@
"steppedLine": false,
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"exemplar": true,
"expr": "{__name__=~\"curvefs_disk_cache.*[[fs:regex]]_write_s3_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
"hide": false,
@@ -6397,9 +6425,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_s3_latency",
"tooltip": {
"shared": true,
@@ -6408,9 +6434,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6433,17 +6457,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "diskcache r/w s3 performance",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 16
+ "y": 32
},
"id": 111,
"panels": [
@@ -6452,7 +6488,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -6465,7 +6504,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 81
+ "y": 113
},
"hiddenSeries": false,
"id": 112,
@@ -6498,7 +6537,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_file_manager_num\", instance=~\"$instance\"}",
@@ -6508,9 +6548,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "file_manager_num",
"tooltip": {
"shared": true,
@@ -6519,9 +6557,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6548,7 +6584,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -6561,7 +6600,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 81
+ "y": 113
},
"hiddenSeries": false,
"id": 113,
@@ -6594,7 +6633,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_chunk_manager_num\", instance=~\"$instance\"}",
@@ -6604,9 +6644,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "chunk_manager_num",
"tooltip": {
"shared": true,
@@ -6615,9 +6653,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6640,17 +6676,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "manager metric",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 17
+ "y": 33
},
"id": 121,
"panels": [
@@ -6659,7 +6707,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -6672,7 +6723,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 18
+ "y": 50
},
"hiddenSeries": false,
"id": 122,
@@ -6705,7 +6756,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"diskcache_cache_count\", instance=~\"$instance\"}",
@@ -6715,9 +6767,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "diskcache_cache_count",
"tooltip": {
"shared": true,
@@ -6726,9 +6776,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6755,7 +6803,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -6768,7 +6819,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 18
+ "y": 50
},
"hiddenSeries": false,
"id": 123,
@@ -6801,7 +6852,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"diskcache_cache_bytes\", instance=~\"$instance\"}",
@@ -6811,9 +6863,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "diskcache_cache_bytes",
"tooltip": {
"shared": true,
@@ -6822,9 +6872,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6851,7 +6899,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "none"
@@ -6864,7 +6915,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 26
+ "y": 58
},
"hiddenSeries": false,
"id": 124,
@@ -6897,7 +6948,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"icache_cache_count\", instance=~\"$instance\"}",
@@ -6907,9 +6959,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "icache_cache_count",
"tooltip": {
"shared": true,
@@ -6918,9 +6968,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -6947,7 +6995,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "none"
@@ -6960,7 +7011,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 26
+ "y": 58
},
"hiddenSeries": false,
"id": 125,
@@ -6993,7 +7044,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"inode_s3_chunk_info_size\", instance=~\"$instance\"}",
@@ -7003,9 +7055,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "inode_s3_chunk_info_size",
"tooltip": {
"shared": true,
@@ -7014,9 +7064,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7043,7 +7091,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7056,7 +7107,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 34
+ "y": 66
},
"hiddenSeries": false,
"id": 126,
@@ -7089,7 +7140,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"dcache_cache_count\", instance=~\"$instance\"}",
@@ -7099,9 +7151,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "dcache_cache_count",
"tooltip": {
"shared": true,
@@ -7110,9 +7160,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7139,7 +7187,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7152,7 +7203,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 34
+ "y": 66
},
"hiddenSeries": false,
"id": 127,
@@ -7185,7 +7236,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"dcache_cache_bytes\", instance=~\"$instance\"}",
@@ -7195,9 +7247,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "dcache_cache_bytes",
"tooltip": {
"shared": true,
@@ -7206,9 +7256,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7231,17 +7279,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "lru cache",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 18
+ "y": 34
},
"id": 115,
"panels": [
@@ -7250,7 +7310,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7263,7 +7326,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 115
+ "y": 147
},
"hiddenSeries": false,
"id": 116,
@@ -7296,7 +7359,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_read_data_cache_num\", instance=~\"$instance\"}",
@@ -7306,9 +7370,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_data_cache_num",
"tooltip": {
"shared": true,
@@ -7317,9 +7379,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7346,7 +7406,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7359,7 +7422,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 115
+ "y": 147
},
"hiddenSeries": false,
"id": 117,
@@ -7392,7 +7455,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_write_data_cache_num\", instance=~\"$instance\"}",
@@ -7402,9 +7466,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_data_cache_num",
"tooltip": {
"shared": true,
@@ -7413,9 +7475,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7442,7 +7502,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7455,7 +7518,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 123
+ "y": 155
},
"hiddenSeries": false,
"id": 118,
@@ -7488,7 +7551,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_read_data_cache_byte\", instance=~\"$instance\"}",
@@ -7498,9 +7562,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "read_data_cache_byte",
"tooltip": {
"shared": true,
@@ -7509,9 +7571,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7538,7 +7598,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7551,7 +7614,7 @@
"h": 8,
"w": 12,
"x": 12,
- "y": 123
+ "y": 155
},
"hiddenSeries": false,
"id": 119,
@@ -7584,7 +7647,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs.*_write_data_cache_byte\", instance=~\"$instance\"}",
@@ -7594,9 +7658,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "write_data_cache_byte",
"tooltip": {
"shared": true,
@@ -7605,9 +7667,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7634,7 +7694,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "bytes"
@@ -7647,7 +7710,7 @@
"h": 8,
"w": 12,
"x": 0,
- "y": 131
+ "y": 163
},
"hiddenSeries": false,
"id": 178,
@@ -7680,7 +7743,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_disk_cache_[[fs:regex]]_diskcache_usedbytes\", instance=~\"$instance\"}",
@@ -7690,9 +7754,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "diskcache_usedbytes",
"tooltip": {
"shared": true,
@@ -7701,9 +7763,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7726,17 +7786,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "diskcache cache num/byte",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 19
+ "y": 35
},
"id": 32,
"panels": [
@@ -7745,7 +7817,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7758,7 +7833,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 140
+ "y": 172
},
"hiddenSeries": false,
"id": 36,
@@ -7791,7 +7866,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*mount_fs_qps\", instance=~\"$instance\"}",
@@ -7801,9 +7877,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "mountfs_qps",
"tooltip": {
"shared": true,
@@ -7812,9 +7886,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7841,7 +7913,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -7854,7 +7929,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 140
+ "y": 172
},
"hiddenSeries": false,
"id": 128,
@@ -7887,7 +7962,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*_mount_fs_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -7897,9 +7973,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "mountfs_latency",
"tooltip": {
"shared": true,
@@ -7908,9 +7982,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -7937,7 +8009,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -7950,7 +8025,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 146
+ "y": 178
},
"hiddenSeries": false,
"id": 129,
@@ -7983,7 +8058,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*umount_fs_qps\", instance=~\"$instance\"}",
@@ -7993,9 +8069,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "umountfs_qps",
"tooltip": {
"shared": true,
@@ -8004,9 +8078,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8033,7 +8105,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -8046,7 +8121,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 146
+ "y": 178
},
"hiddenSeries": false,
"id": 130,
@@ -8079,7 +8154,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*umount_fs_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -8089,9 +8165,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "umountfs_latency",
"tooltip": {
"shared": true,
@@ -8100,9 +8174,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8129,7 +8201,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -8142,7 +8217,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 152
+ "y": 184
},
"hiddenSeries": false,
"id": 131,
@@ -8175,7 +8250,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_fs_info_qps\", instance=~\"$instance\"}",
@@ -8185,9 +8261,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_fsinfo_qps",
"tooltip": {
"shared": true,
@@ -8196,9 +8270,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8225,7 +8297,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -8238,7 +8313,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 152
+ "y": 184
},
"hiddenSeries": false,
"id": 132,
@@ -8271,7 +8346,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_fs_info_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -8281,9 +8357,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_fsinfo_latency",
"tooltip": {
"shared": true,
@@ -8292,9 +8366,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8321,7 +8393,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -8334,7 +8409,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 158
+ "y": 190
},
"hiddenSeries": false,
"id": 133,
@@ -8367,7 +8442,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_meta_server_info_qps\", instance=~\"$instance\"}",
@@ -8377,9 +8453,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_metaserver_info_qps",
"tooltip": {
"shared": true,
@@ -8388,9 +8462,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8417,7 +8489,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -8430,7 +8505,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 158
+ "y": 190
},
"hiddenSeries": false,
"id": 134,
@@ -8463,7 +8538,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_meta_server_info_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -8473,9 +8549,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_metaserver_info_latency",
"tooltip": {
"shared": true,
@@ -8484,9 +8558,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8513,7 +8585,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -8526,7 +8601,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 164
+ "y": 196
},
"hiddenSeries": false,
"id": 135,
@@ -8559,7 +8634,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_meta_server_list_in_copysets_qps\", instance=~\"$instance\"}",
@@ -8569,9 +8645,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_metaserver_list_in_copysets_qps",
"tooltip": {
"shared": true,
@@ -8580,9 +8654,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8609,7 +8681,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -8622,7 +8697,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 164
+ "y": 196
},
"hiddenSeries": false,
"id": 136,
@@ -8655,7 +8730,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_meta_server_list_in_copysets_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -8665,9 +8741,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_metaserver_list_in_copysets_latency",
"tooltip": {
"shared": true,
@@ -8676,9 +8750,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8705,7 +8777,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -8718,7 +8793,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 170
+ "y": 202
},
"hiddenSeries": false,
"id": 137,
@@ -8751,7 +8826,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*create_partition_qps\", instance=~\"$instance\"}",
@@ -8761,9 +8837,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_partition_qps",
"tooltip": {
"shared": true,
@@ -8772,9 +8846,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8801,7 +8873,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -8814,7 +8889,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 170
+ "y": 202
},
"hiddenSeries": false,
"id": 138,
@@ -8847,7 +8922,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*create_partition_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -8857,9 +8933,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_partition_latency",
"tooltip": {
"shared": true,
@@ -8868,9 +8942,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8897,7 +8969,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -8910,7 +8985,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 176
+ "y": 208
},
"hiddenSeries": false,
"id": 139,
@@ -8943,7 +9018,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_copyset_of_partitions_qps\", instance=~\"$instance\"}",
@@ -8953,9 +9029,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_copyset_of_partitions_qps",
"tooltip": {
"shared": true,
@@ -8964,9 +9038,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -8993,7 +9065,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9006,7 +9081,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 176
+ "y": 208
},
"hiddenSeries": false,
"id": 140,
@@ -9038,7 +9113,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_copyset_of_partitions_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -9048,9 +9124,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_copyset_of_partitions_latency",
"tooltip": {
"shared": true,
@@ -9059,9 +9133,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9088,7 +9160,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -9101,7 +9176,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 182
+ "y": 214
},
"hiddenSeries": false,
"id": 141,
@@ -9133,7 +9208,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*list_partition_qps\", instance=~\"$instance\"}",
@@ -9143,9 +9219,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "list_partition_qps",
"tooltip": {
"shared": true,
@@ -9154,9 +9228,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9183,7 +9255,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9196,7 +9271,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 182
+ "y": 214
},
"hiddenSeries": false,
"id": 142,
@@ -9229,7 +9304,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*list_partition_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -9239,9 +9315,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "list_partition_latency",
"tooltip": {
"shared": true,
@@ -9250,9 +9324,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9279,7 +9351,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -9292,7 +9367,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 188
+ "y": 220
},
"hiddenSeries": false,
"id": 143,
@@ -9325,7 +9400,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*alloc_s3_chunk_id_qps\", instance=~\"$instance\"}",
@@ -9335,9 +9411,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "alloc_s3_chunkid_qps",
"tooltip": {
"shared": true,
@@ -9346,9 +9420,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9375,7 +9447,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9388,7 +9463,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 188
+ "y": 220
},
"hiddenSeries": false,
"id": 144,
@@ -9421,7 +9496,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*alloc_s3_chunk_id_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -9431,9 +9507,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "alloc_s3_chunkid_latency",
"tooltip": {
"shared": true,
@@ -9442,9 +9516,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9471,7 +9543,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -9484,7 +9559,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 194
+ "y": 226
},
"hiddenSeries": false,
"id": 145,
@@ -9517,7 +9592,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*refresh_session_qps\", instance=~\"$instance\"}",
@@ -9527,9 +9603,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "refresh_session_qps",
"tooltip": {
"shared": true,
@@ -9538,9 +9612,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9567,7 +9639,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9580,7 +9655,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 194
+ "y": 226
},
"hiddenSeries": false,
"id": 146,
@@ -9613,7 +9688,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*refresh_session_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -9623,9 +9699,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "refresh_session_latency",
"tooltip": {
"shared": true,
@@ -9634,9 +9708,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9663,7 +9735,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -9676,7 +9751,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 200
+ "y": 232
},
"hiddenSeries": false,
"id": 147,
@@ -9709,7 +9784,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_latest_tx_id_qps\", instance=~\"$instance\"}",
@@ -9719,9 +9795,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_latest_txid_qps",
"tooltip": {
"shared": true,
@@ -9730,9 +9804,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9759,7 +9831,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9772,7 +9847,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 200
+ "y": 232
},
"hiddenSeries": false,
"id": 148,
@@ -9805,7 +9880,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*get_latest_tx_id_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -9815,9 +9891,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_latest_txid_latency",
"tooltip": {
"shared": true,
@@ -9826,9 +9900,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9855,7 +9927,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -9868,7 +9943,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 206
+ "y": 238
},
"hiddenSeries": false,
"id": 149,
@@ -9901,7 +9976,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*commit_tx_qps\", instance=~\"$instance\"}",
@@ -9911,9 +9987,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "commit_tx_qps",
"tooltip": {
"shared": true,
@@ -9922,9 +9996,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -9951,7 +10023,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -9964,7 +10039,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 206
+ "y": 238
},
"hiddenSeries": false,
"id": 150,
@@ -9997,7 +10072,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_mds_client.*commit_tx_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10007,9 +10083,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "commit_tx_latency",
"tooltip": {
"shared": true,
@@ -10018,9 +10092,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10043,17 +10115,29 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "mds client latency",
"type": "row"
},
{
"collapsed": true,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
- "y": 20
+ "y": 36
},
"id": 34,
"panels": [
@@ -10062,7 +10146,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -10075,7 +10162,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 213
+ "y": 245
},
"hiddenSeries": false,
"id": 155,
@@ -10108,7 +10195,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*create_inode_qps\", instance=~\"$instance\"}",
@@ -10118,9 +10206,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_inode_qps",
"tooltip": {
"shared": true,
@@ -10129,9 +10215,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10158,7 +10242,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -10171,7 +10258,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 213
+ "y": 245
},
"hiddenSeries": false,
"id": 152,
@@ -10204,7 +10291,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*create_inode_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10214,9 +10302,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_inode_latency",
"tooltip": {
"shared": true,
@@ -10225,9 +10311,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10254,7 +10338,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -10267,7 +10354,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 219
+ "y": 251
},
"hiddenSeries": false,
"id": 153,
@@ -10300,7 +10387,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*create_dentry_qps\", instance=~\"$instance\"}",
@@ -10310,9 +10398,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_dentry_qps",
"tooltip": {
"shared": true,
@@ -10321,9 +10407,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10350,7 +10434,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -10363,7 +10450,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 219
+ "y": 251
},
"hiddenSeries": false,
"id": 156,
@@ -10396,7 +10483,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*create_dentry_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10406,9 +10494,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "create_dentry_latency",
"tooltip": {
"shared": true,
@@ -10417,9 +10503,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10446,7 +10530,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -10459,7 +10546,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 225
+ "y": 257
},
"hiddenSeries": false,
"id": 157,
@@ -10492,7 +10579,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*get_inode_qps\", instance=~\"$instance\"}",
@@ -10502,9 +10590,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_inode_qps",
"tooltip": {
"shared": true,
@@ -10513,9 +10599,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10542,7 +10626,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -10555,7 +10642,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 225
+ "y": 257
},
"hiddenSeries": false,
"id": 154,
@@ -10588,7 +10675,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*get_inode_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10598,9 +10686,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_inode_latency",
"tooltip": {
"shared": true,
@@ -10609,9 +10695,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10638,7 +10722,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -10651,7 +10738,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 231
+ "y": 263
},
"hiddenSeries": false,
"id": 151,
@@ -10684,7 +10771,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*get_dentry_qps\", instance=~\"$instance\"}",
@@ -10694,9 +10782,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_dentry_qps",
"tooltip": {
"shared": true,
@@ -10705,9 +10791,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10734,7 +10818,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -10747,7 +10834,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 231
+ "y": 263
},
"hiddenSeries": false,
"id": 158,
@@ -10780,7 +10867,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*get_dentry_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10790,9 +10878,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "get_dentry_latency",
"tooltip": {
"shared": true,
@@ -10801,9 +10887,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10830,7 +10914,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -10843,7 +10930,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 237
+ "y": 269
},
"hiddenSeries": false,
"id": 159,
@@ -10876,7 +10963,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*list_dentry_qps\", instance=~\"$instance\"}",
@@ -10886,9 +10974,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "list_dentry_qps",
"tooltip": {
"shared": true,
@@ -10897,9 +10983,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -10926,7 +11010,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -10939,7 +11026,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 237
+ "y": 269
},
"hiddenSeries": false,
"id": 160,
@@ -10972,7 +11059,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*list_dentry_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -10982,9 +11070,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "list_dentry_latency",
"tooltip": {
"shared": true,
@@ -10993,9 +11079,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11022,7 +11106,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11035,7 +11122,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 243
+ "y": 275
},
"hiddenSeries": false,
"id": 161,
@@ -11068,7 +11155,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*delete_dentry_qps\", instance=~\"$instance\"}",
@@ -11078,9 +11166,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "delete_dentry_qps",
"tooltip": {
"shared": true,
@@ -11089,9 +11175,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11118,7 +11202,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -11131,7 +11218,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 243
+ "y": 275
},
"hiddenSeries": false,
"id": 162,
@@ -11164,7 +11251,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*delete_dentry_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -11174,9 +11262,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "delete_dentry_latency",
"tooltip": {
"shared": true,
@@ -11185,9 +11271,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11214,7 +11298,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11227,7 +11314,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 249
+ "y": 281
},
"hiddenSeries": false,
"id": 163,
@@ -11260,7 +11347,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*delete_inode_qps\", instance=~\"$instance\"}",
@@ -11270,9 +11358,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "delete_inode_qps",
"tooltip": {
"shared": true,
@@ -11281,9 +11367,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11310,7 +11394,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -11323,7 +11410,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 249
+ "y": 281
},
"hiddenSeries": false,
"id": 164,
@@ -11356,7 +11443,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*delete_inode_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -11366,9 +11454,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "delete_inode_latency",
"tooltip": {
"shared": true,
@@ -11377,9 +11463,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11406,7 +11490,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11419,7 +11506,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 255
+ "y": 287
},
"hiddenSeries": false,
"id": 165,
@@ -11452,7 +11539,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*update_inode_qps\", instance=~\"$instance\"}",
@@ -11462,9 +11550,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "update_inode_qps",
"tooltip": {
"shared": true,
@@ -11473,9 +11559,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11502,7 +11586,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -11515,7 +11602,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 255
+ "y": 287
},
"hiddenSeries": false,
"id": 166,
@@ -11548,7 +11635,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*update_inode_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -11558,9 +11646,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "update_inode_latency",
"tooltip": {
"shared": true,
@@ -11569,9 +11655,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11598,7 +11682,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11611,7 +11698,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 261
+ "y": 293
},
"hiddenSeries": false,
"id": 167,
@@ -11644,7 +11731,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*batch_get_inode_attr_qps\", instance=~\"$instance\"}",
@@ -11654,9 +11742,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "batch_get_inodeattr_qps",
"tooltip": {
"shared": true,
@@ -11665,9 +11751,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11694,7 +11778,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -11707,7 +11794,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 261
+ "y": 293
},
"hiddenSeries": false,
"id": 168,
@@ -11740,7 +11827,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*batch_get_inode_attr_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -11750,9 +11838,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "batch_get_inodeattr_latency",
"tooltip": {
"shared": true,
@@ -11761,9 +11847,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11790,7 +11874,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11803,7 +11890,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 267
+ "y": 299
},
"hiddenSeries": false,
"id": 169,
@@ -11836,7 +11923,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*batch_get_xattr_qps\", instance=~\"$instance\"}",
@@ -11846,9 +11934,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "batch_get_xattr_qps",
"tooltip": {
"shared": true,
@@ -11857,9 +11943,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11886,7 +11970,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -11899,7 +11986,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 267
+ "y": 299
},
"hiddenSeries": false,
"id": 170,
@@ -11932,7 +12019,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*batch_get_xattr_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -11942,9 +12030,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "batch_get_xattr_latency",
"tooltip": {
"shared": true,
@@ -11953,9 +12039,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -11982,7 +12066,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -11995,7 +12082,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 273
+ "y": 305
},
"hiddenSeries": false,
"id": 171,
@@ -12028,7 +12115,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*append_s3_chunk_info_qps\", instance=~\"$instance\"}",
@@ -12038,9 +12126,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "append_s3_chunk_info_qps",
"tooltip": {
"shared": true,
@@ -12049,9 +12135,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -12078,7 +12162,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -12091,7 +12178,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 273
+ "y": 305
},
"hiddenSeries": false,
"id": 172,
@@ -12124,7 +12211,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*append_s3_chunk_info_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -12134,9 +12222,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "append_s3_chunk_info_latency",
"tooltip": {
"shared": true,
@@ -12145,9 +12231,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -12174,7 +12258,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "short"
@@ -12187,7 +12274,7 @@
"h": 6,
"w": 12,
"x": 0,
- "y": 279
+ "y": 311
},
"hiddenSeries": false,
"id": 173,
@@ -12220,7 +12307,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*prepare_rename_tx_qps\", instance=~\"$instance\"}",
@@ -12230,9 +12318,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "prepare_rename_tx_qps",
"tooltip": {
"shared": true,
@@ -12241,9 +12327,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -12270,7 +12354,10 @@
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"fieldConfig": {
"defaults": {
"unit": "µs"
@@ -12283,7 +12370,7 @@
"h": 6,
"w": 12,
"x": 12,
- "y": 279
+ "y": 311
},
"hiddenSeries": false,
"id": 174,
@@ -12316,7 +12403,8 @@
"targets": [
{
"datasource": {
- "type": "prometheus"
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "{__name__=~\"curvefs_metaserver_client.*prepare_rename_tx_lat_[[quantile:regex]]\", job=\"client\", instance=~\"$instance\"}",
@@ -12326,9 +12414,7 @@
}
],
"thresholds": [],
- "timeFrom": null,
"timeRegions": [],
- "timeShift": null,
"title": "prepare_rename_tx_latency",
"tooltip": {
"shared": true,
@@ -12337,9 +12423,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": null,
"mode": "time",
- "name": null,
"show": true,
"values": []
},
@@ -12362,27 +12446,336 @@
}
}
],
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "refId": "A"
+ }
+ ],
"title": "metaserver client latency",
"type": "row"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 37
+ },
+ "id": 180,
+ "panels": [],
+ "title": "warmup",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "binBps"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 38
+ },
+ "id": 182,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max",
+ "min",
+ "mean"
+ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "editorMode": "builder",
+ "expr": "curvefs_warmup_s3_cached_bps",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "warmup_s3_bps",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 38
+ },
+ "id": 184,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max",
+ "min",
+ "mean"
+ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "editorMode": "builder",
+ "expr": "curvefs_warmup_s3_cached_qps",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "warmup_s3_qps",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "bytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 46
+ },
+ "id": 186,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
+ "editorMode": "builder",
+ "expr": "curvefs_warmup_s3_cache_size",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "warmup_s3_size",
+ "type": "timeseries"
}
],
"refresh": "5s",
- "schemaVersion": 30,
+ "revision": 1,
+ "schemaVersion": 38,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
- "allValue": null,
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"definition": "{__name__=~\"bthread_count\", job=\"client\"}",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "Addr",
@@ -12400,7 +12793,6 @@
"type": "query"
},
{
- "allValue": null,
"current": {
"selected": true,
"text": [
@@ -12410,10 +12802,11 @@
"$__all"
]
},
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"definition": "{__name__=~\"curvefs_s3_.*_adaptor_write_bps\", job=\"client\"}",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "fsname",
@@ -12441,10 +12834,11 @@
"latency_99"
]
},
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"definition": "{__name__=~\".*(latency_[0-9]*|latency)\", job=\"client\"}",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "latency_quantile",
@@ -12462,7 +12856,6 @@
"type": "query"
},
{
- "allValue": null,
"current": {
"selected": true,
"text": [
@@ -12472,10 +12865,11 @@
"$__all"
]
},
- "datasource": null,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "PBFA97CFB590B2093"
+ },
"definition": "{__name__=~\"curvefs_client_op_.*_inflight_num\", job=\"client\"}",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "op",
@@ -12502,5 +12896,6 @@
"timezone": "",
"title": "client",
"uid": "I2_uSSenk",
- "version": 107
-}
+ "version": 1,
+ "weekStart": ""
+}
\ No newline at end of file
diff --git a/curvefs/proto/common.proto b/curvefs/proto/common.proto
index c0d227f1ec..4c72525de4 100644
--- a/curvefs/proto/common.proto
+++ b/curvefs/proto/common.proto
@@ -58,6 +58,7 @@ message S3Info {
required string bucketname = 4;
required uint64 blockSize = 5;
required uint64 chunkSize = 6;
+ optional uint32 objectPrefix = 7;
}
enum PartitionStatus {
diff --git a/curvefs/proto/mds.proto b/curvefs/proto/mds.proto
index 8680e6b5a3..36f243bbae 100644
--- a/curvefs/proto/mds.proto
+++ b/curvefs/proto/mds.proto
@@ -191,6 +191,7 @@ message RefreshSessionRequest {
message RefreshSessionResponse {
required FSStatusCode statusCode = 1;
repeated topology.PartitionTxId latestTxIdList = 2;
+ optional bool enableSumInDir = 3;
}
message DLockValue {
diff --git a/curvefs/src/client/BUILD b/curvefs/src/client/BUILD
index 9bc190a388..b296af86f8 100644
--- a/curvefs/src/client/BUILD
+++ b/curvefs/src/client/BUILD
@@ -43,6 +43,8 @@ cc_library(
"s3/*.h",
"volume/*.cpp",
"volume/*.h",
+ "filesystem/*.cpp",
+ "filesystem/*.h",
"warmup/*.h",
"warmup/*.cpp",
],
@@ -71,10 +73,14 @@ cc_library(
"//curvefs/src/volume",
"//curvefs/src/common:metric_utils",
"//curvefs/src/common:dynamic_vlog",
+ "//curvefs/src/common:threading",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
+ "@com_google_absl//absl/synchronization",
+ "@com_google_absl//absl/strings:str_format",
"@com_google_absl//absl/meta:type_traits",
"@com_google_absl//absl/types:optional",
"@com_google_googletest//:gtest_prod",
+ "@spdlog//:spdlog",
],
)
diff --git a/curvefs/src/client/async_request_closure.cpp b/curvefs/src/client/async_request_closure.cpp
index 0d99e69fee..aac58c932b 100644
--- a/curvefs/src/client/async_request_closure.cpp
+++ b/curvefs/src/client/async_request_closure.cpp
@@ -28,7 +28,7 @@
#include
#include "curvefs/proto/metaserver.pb.h"
-#include "curvefs/src/client/error_code.h"
+#include "curvefs/src/client/filesystem/error.h"
#include "curvefs/src/client/inode_wrapper.h"
namespace curvefs {
@@ -63,7 +63,7 @@ CURVEFS_ERROR UpdateVolumeExtentClosure::Wait() {
cond_.wait(lk);
}
- return MetaStatusCodeToCurvefsErrCode(GetStatusCode());
+ return ToFSError(GetStatusCode());
}
void UpdateVolumeExtentClosure::Run() {
diff --git a/curvefs/src/client/async_request_closure.h b/curvefs/src/client/async_request_closure.h
index 0e75cc78e2..2d83bfcd0e 100644
--- a/curvefs/src/client/async_request_closure.h
+++ b/curvefs/src/client/async_request_closure.h
@@ -28,12 +28,15 @@
#include
-#include "curvefs/src/client/error_code.h"
#include "curvefs/src/client/rpcclient/task_excutor.h"
+#include "curvefs/src/client/filesystem/error.h"
namespace curvefs {
namespace client {
+using ::curvefs::client::filesystem::CURVEFS_ERROR;
+using ::curvefs::client::filesystem::ToFSError;
+
class InodeWrapper;
namespace internal {
diff --git a/curvefs/src/client/client_operator.cpp b/curvefs/src/client/client_operator.cpp
index e04b598882..8d44a5150f 100644
--- a/curvefs/src/client/client_operator.cpp
+++ b/curvefs/src/client/client_operator.cpp
@@ -24,13 +24,14 @@
#include "src/common/uuid.h"
#include "curvefs/src/client/client_operator.h"
-
+#include "curvefs/src/client/filesystem/error.h"
namespace curvefs {
namespace client {
using ::curve::common::UUIDGenerator;
using ::curvefs::metaserver::DentryFlag;
using ::curvefs::mds::topology::PartitionTxId;
+using ::curvefs::client::filesystem::ToFSError;
#define LOG_ERROR(action, rc) \
LOG(ERROR) << action << " failed, retCode = " << rc \
@@ -95,7 +96,7 @@ CURVEFS_ERROR RenameOperator::GetTxId(uint32_t fsId,
if (rc != MetaStatusCode::OK) {
LOG_ERROR("GetTxId", rc);
}
- return MetaStatusCodeToCurvefsErrCode(rc);
+ return ToFSError(rc);
}
CURVEFS_ERROR RenameOperator::GetLatestTxIdWithLock() {
@@ -204,7 +205,7 @@ CURVEFS_ERROR RenameOperator::PrepareRenameTx(
LOG_ERROR("PrepareRenameTx", rc);
}
- return MetaStatusCodeToCurvefsErrCode(rc);
+ return ToFSError(rc);
}
CURVEFS_ERROR RenameOperator::PrepareTx() {
@@ -418,8 +419,6 @@ CURVEFS_ERROR RenameOperator::UpdateInodeCtime() {
}
void RenameOperator::UpdateCache() {
- dentryManager_->DeleteCache(parentId_, name_);
- dentryManager_->InsertOrReplaceCache(newDentry_);
SetTxId(srcPartitionId_, srcTxId_ + 1);
SetTxId(dstPartitionId_, dstTxId_ + 1);
}
diff --git a/curvefs/src/client/common/common.cpp b/curvefs/src/client/common/common.cpp
index 7cf6bfeb21..6567792c0c 100644
--- a/curvefs/src/client/common/common.cpp
+++ b/curvefs/src/client/common/common.cpp
@@ -105,6 +105,19 @@ WarmupType GetWarmupType(const std::string& type) {
return ret;
}
+const char kCurveFsWarmupStorageDisk[] = "disk";
+const char kCurveFsWarmupStorageKvclient[] = "kvclient";
+
+WarmupStorageType GetWarmupStorageType(const std::string &type) {
+ auto ret = WarmupStorageType::kWarmupStorageTypeUnknown;
+ if (type == kCurveFsWarmupStorageDisk) {
+ ret = WarmupStorageType::kWarmupStorageTypeDisk;
+ } else if (type == kCurveFsWarmupStorageKvclient) {
+ ret = WarmupStorageType::kWarmupStorageTypeKvClient;
+ }
+ return ret;
+}
+
using ::curve::common::StringToUll;
// if direction is true means '+', false means '-'
diff --git a/curvefs/src/client/common/common.h b/curvefs/src/client/common/common.h
index e89f50fd9a..a1a1d704c2 100644
--- a/curvefs/src/client/common/common.h
+++ b/curvefs/src/client/common/common.h
@@ -69,6 +69,9 @@ const uint32_t MAX_XATTR_VALUE_LENGTH = 64 * 1024;
const char kCurveFsWarmupXAttr[] = "curvefs.warmup.op";
+
+constexpr int kWarmupOpNum = 4;
+
enum class WarmupOpType {
kWarmupOpUnknown = 0,
kWarmupOpAdd = 1,
@@ -83,7 +86,15 @@ enum class WarmupType {
kWarmupTypeSingle = 2,
};
-WarmupType GetWarmupType(const std::string& type);
+WarmupType GetWarmupType(const std::string &type);
+
+enum class WarmupStorageType {
+ kWarmupStorageTypeUnknown = 0,
+ kWarmupStorageTypeDisk = 1,
+ kWarmupStorageTypeKvClient = 2,
+};
+
+WarmupStorageType GetWarmupStorageType(const std::string &type);
enum class FileHandle : uint64_t {
kDefaultValue = 0,
diff --git a/curvefs/src/client/common/config.cpp b/curvefs/src/client/common/config.cpp
index ab7abd49d9..62dabcb726 100644
--- a/curvefs/src/client/common/config.cpp
+++ b/curvefs/src/client/common/config.cpp
@@ -50,6 +50,56 @@ DEFINE_bool(enableCto, true, "acheieve cto consistency");
DEFINE_bool(useFakeS3, false,
"Use fake s3 to inject more metadata for testing metaserver");
DEFINE_bool(supportKVcache, false, "use kvcache to speed up sharing");
+DEFINE_bool(access_logging, true, "enable access log");
+
+/**
+ * use curl -L fuseclient:port/flags/fuseClientAvgWriteBytes?setvalue=true
+ * for dynamic parameter configuration
+ */
+static bool pass_uint64(const char *, uint64_t) { return true; }
+
+DEFINE_uint64(fuseClientAvgWriteBytes, 0,
+ "the write throttle bps of fuse client");
+DEFINE_validator(fuseClientAvgWriteBytes, &pass_uint64);
+DEFINE_uint64(fuseClientBurstWriteBytes, 0,
+ "the write burst bps of fuse client");
+DEFINE_validator(fuseClientBurstWriteBytes, &pass_uint64);
+DEFINE_uint64(fuseClientBurstWriteBytesSecs, 180,
+ "the times that write burst bps can continue");
+DEFINE_validator(fuseClientBurstWriteBytesSecs, &pass_uint64);
+
+
+DEFINE_uint64(fuseClientAvgWriteIops, 0,
+ "the write throttle iops of fuse client");
+DEFINE_validator(fuseClientAvgWriteIops, &pass_uint64);
+DEFINE_uint64(fuseClientBurstWriteIops, 0,
+ "the write burst iops of fuse client");
+DEFINE_validator(fuseClientBurstWriteIops, &pass_uint64);
+DEFINE_uint64(fuseClientBurstWriteIopsSecs, 180,
+ "the times that write burst iops can continue");
+DEFINE_validator(fuseClientBurstWriteIopsSecs, &pass_uint64);
+
+
+DEFINE_uint64(fuseClientAvgReadBytes, 0,
+ "the Read throttle bps of fuse client");
+DEFINE_validator(fuseClientAvgReadBytes, &pass_uint64);
+DEFINE_uint64(fuseClientBurstReadBytes, 0,
+ "the Read burst bps of fuse client");
+DEFINE_validator(fuseClientBurstReadBytes, &pass_uint64);
+DEFINE_uint64(fuseClientBurstReadBytesSecs, 180,
+ "the times that Read burst bps can continue");
+DEFINE_validator(fuseClientBurstReadBytesSecs, &pass_uint64);
+
+
+DEFINE_uint64(fuseClientAvgReadIops, 0,
+ "the Read throttle iops of fuse client");
+DEFINE_validator(fuseClientAvgReadIops, &pass_uint64);
+DEFINE_uint64(fuseClientBurstReadIops, 0,
+ "the Read burst iops of fuse client");
+DEFINE_validator(fuseClientBurstReadIops, &pass_uint64);
+DEFINE_uint64(fuseClientBurstReadIopsSecs, 180,
+ "the times that Read burst iops can continue");
+DEFINE_validator(fuseClientBurstReadIopsSecs, &pass_uint64);
void InitMdsOption(Configuration *conf, MdsOption *mdsOpt) {
conf->GetValueFatalIfFail("mdsOpt.mdsMaxRetryMS", &mdsOpt->mdsMaxRetryMS);
@@ -157,8 +207,6 @@ void InitDiskCacheOption(Configuration *conf,
void InitS3Option(Configuration *conf, S3Option *s3Opt) {
conf->GetValueFatalIfFail("s3.fakeS3", &FLAGS_useFakeS3);
- conf->GetValueFatalIfFail("s3.fuseMaxSize",
- &s3Opt->s3ClientAdaptorOpt.fuseMaxSize);
conf->GetValueFatalIfFail("s3.pageSize",
&s3Opt->s3ClientAdaptorOpt.pageSize);
conf->GetValueFatalIfFail("s3.prefetchBlocks",
@@ -175,6 +223,8 @@ void InitS3Option(Configuration *conf, S3Option *s3Opt) {
&s3Opt->s3ClientAdaptorOpt.writeCacheMaxByte);
conf->GetValueFatalIfFail("s3.readCacheMaxByte",
&s3Opt->s3ClientAdaptorOpt.readCacheMaxByte);
+ conf->GetValueFatalIfFail("s3.readCacheThreads",
+ &s3Opt->s3ClientAdaptorOpt.readCacheThreads);
conf->GetValueFatalIfFail("s3.nearfullRatio",
&s3Opt->s3ClientAdaptorOpt.nearfullRatio);
conf->GetValueFatalIfFail("s3.baseSleepUs",
@@ -243,6 +293,55 @@ void InitKVClientManagerOpt(Configuration *conf,
&config->getThreadPooln);
}
+void InitFileSystemOption(Configuration* c, FileSystemOption* option) {
+ c->GetValueFatalIfFail("fs.cto", &option->cto);
+ c->GetValueFatalIfFail("fs.cto", &FLAGS_enableCto);
+ c->GetValueFatalIfFail("fs.disableXattr", &option->disableXattr);
+ c->GetValueFatalIfFail("fs.maxNameLength", &option->maxNameLength);
+ c->GetValueFatalIfFail("fs.accessLogging", &FLAGS_access_logging);
+ { // kernel cache option
+ auto o = &option->kernelCacheOption;
+ c->GetValueFatalIfFail("fs.kernelCache.attrTimeoutSec",
+ &o->attrTimeoutSec);
+ c->GetValueFatalIfFail("fs.kernelCache.dirAttrTimeoutSec",
+ &o->dirAttrTimeoutSec);
+ c->GetValueFatalIfFail("fs.kernelCache.entryTimeoutSec",
+ &o->entryTimeoutSec);
+ c->GetValueFatalIfFail("fs.kernelCache.dirEntryTimeoutSec",
+ &o->dirEntryTimeoutSec);
+ }
+ { // lookup cache option
+ auto o = &option->lookupCacheOption;
+ c->GetValueFatalIfFail("fs.lookupCache.lruSize",
+ &o->lruSize);
+ c->GetValueFatalIfFail("fs.lookupCache.negativeTimeoutSec",
+ &o->negativeTimeoutSec);
+ c->GetValueFatalIfFail("fs.lookupCache.minUses",
+ &o->minUses);
+ }
+ { // dir cache option
+ auto o = &option->dirCacheOption;
+ c->GetValueFatalIfFail("fs.dirCache.lruSize", &o->lruSize);
+ }
+ { // open file option
+ auto o = &option->openFilesOption;
+ c->GetValueFatalIfFail("fs.openFile.lruSize", &o->lruSize);
+ }
+ { // attr watcher option
+ auto o = &option->attrWatcherOption;
+ c->GetValueFatalIfFail("fs.attrWatcher.lruSize", &o->lruSize);
+ }
+ { // rpc option
+ auto o = &option->rpcOption;
+ c->GetValueFatalIfFail("fs.rpc.listDentryLimit", &o->listDentryLimit);
+ }
+ { // defer sync option
+ auto o = &option->deferSyncOption;
+ c->GetValueFatalIfFail("fs.deferSync.delay", &o->delay);
+ c->GetValueFatalIfFail("fs.deferSync.deferDirMtime", &o->deferDirMtime);
+ }
+}
+
void SetBrpcOpt(Configuration *conf) {
curve::common::GflagsLoadValueFromConfIfCmdNotSet dummy;
dummy.Load(conf, "defer_close_second", "rpc.defer.close.second",
@@ -263,36 +362,16 @@ void InitFuseClientOption(Configuration *conf, FuseClientOption *clientOption) {
InitLeaseOpt(conf, &clientOption->leaseOpt);
InitRefreshDataOpt(conf, &clientOption->refreshDataOption);
InitKVClientManagerOpt(conf, &clientOption->kvClientManagerOpt);
+ InitFileSystemOption(conf, &clientOption->fileSystemOption);
- conf->GetValueFatalIfFail("fuseClient.attrTimeOut",
- &clientOption->attrTimeOut);
- conf->GetValueFatalIfFail("fuseClient.entryTimeOut",
- &clientOption->entryTimeOut);
conf->GetValueFatalIfFail("fuseClient.listDentryLimit",
&clientOption->listDentryLimit);
conf->GetValueFatalIfFail("fuseClient.listDentryThreads",
&clientOption->listDentryThreads);
- conf->GetValueFatalIfFail("fuseClient.flushPeriodSec",
- &clientOption->flushPeriodSec);
- conf->GetValueFatalIfFail("fuseClient.maxNameLength",
- &clientOption->maxNameLength);
- conf->GetValueFatalIfFail("fuseClient.iCacheLruSize",
- &clientOption->iCacheLruSize);
- conf->GetValueFatalIfFail("fuseClient.dCacheLruSize",
- &clientOption->dCacheLruSize);
- conf->GetValueFatalIfFail("fuseClient.enableICacheMetrics",
- &clientOption->enableICacheMetrics);
- conf->GetValueFatalIfFail("fuseClient.enableDCacheMetrics",
- &clientOption->enableDCacheMetrics);
- conf->GetValueFatalIfFail("fuseClient.lruTimeOutSec",
- &clientOption->lruTimeOutSec);
conf->GetValueFatalIfFail("client.dummyServer.startPort",
&clientOption->dummyServerStartPort);
conf->GetValueFatalIfFail("fuseClient.enableMultiMountPointRename",
&clientOption->enableMultiMountPointRename);
- conf->GetValueFatalIfFail("fuseClient.disableXattr",
- &clientOption->disableXattr);
- conf->GetValueFatalIfFail("fuseClient.cto", &FLAGS_enableCto);
conf->GetValueFatalIfFail("fuseClient.downloadMaxRetryTimes",
&clientOption->downloadMaxRetryTimes);
conf->GetValueFatalIfFail("fuseClient.warmupThreadsNum",
@@ -302,12 +381,33 @@ void InitFuseClientOption(Configuration *conf, FuseClientOption *clientOption) {
<< "Not found `fuseClient.enableSplice` in conf, use default value `"
<< std::boolalpha << clientOption->enableFuseSplice << '`';
- // if enableCto, attr and entry cache must invalid
- if (FLAGS_enableCto) {
- clientOption->attrTimeOut = 0;
- clientOption->entryTimeOut = 0;
- }
+ conf->GetValueFatalIfFail("fuseClient.throttle.avgWriteBytes",
+ &FLAGS_fuseClientAvgWriteBytes);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstWriteBytes",
+ &FLAGS_fuseClientBurstWriteBytes);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstWriteBytesSecs",
+ &FLAGS_fuseClientBurstWriteBytesSecs);
+
+ conf->GetValueFatalIfFail("fuseClient.throttle.avgWriteIops",
+ &FLAGS_fuseClientAvgWriteIops);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstWriteIops",
+ &FLAGS_fuseClientBurstWriteIops);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstWriteIopsSecs",
+ &FLAGS_fuseClientBurstWriteIopsSecs);
+
+ conf->GetValueFatalIfFail("fuseClient.throttle.avgReadBytes",
+ &FLAGS_fuseClientAvgReadBytes);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstReadBytes",
+ &FLAGS_fuseClientBurstReadBytes);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstReadBytesSecs",
+ &FLAGS_fuseClientBurstReadBytesSecs);
+ conf->GetValueFatalIfFail("fuseClient.throttle.avgReadIops",
+ &FLAGS_fuseClientAvgReadIops);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstReadIops",
+ &FLAGS_fuseClientBurstReadIops);
+ conf->GetValueFatalIfFail("fuseClient.throttle.burstReadIopsSecs",
+ &FLAGS_fuseClientBurstReadIopsSecs);
SetBrpcOpt(conf);
}
@@ -315,6 +415,7 @@ void SetFuseClientS3Option(FuseClientOption *clientOption,
const S3InfoOption &fsS3Opt) {
clientOption->s3Opt.s3ClientAdaptorOpt.blockSize = fsS3Opt.blockSize;
clientOption->s3Opt.s3ClientAdaptorOpt.chunkSize = fsS3Opt.chunkSize;
+ clientOption->s3Opt.s3ClientAdaptorOpt.objectPrefix = fsS3Opt.objectPrefix;
clientOption->s3Opt.s3AdaptrOpt.s3Address = fsS3Opt.s3Address;
clientOption->s3Opt.s3AdaptrOpt.ak = fsS3Opt.ak;
clientOption->s3Opt.s3AdaptrOpt.sk = fsS3Opt.sk;
@@ -329,6 +430,7 @@ void S3Info2FsS3Option(const curvefs::common::S3Info& s3,
fsS3Opt->bucketName = s3.bucketname();
fsS3Opt->blockSize = s3.blocksize();
fsS3Opt->chunkSize = s3.chunksize();
+ fsS3Opt->objectPrefix = s3.has_objectprefix() ? s3.objectprefix() : 0;
}
} // namespace common
diff --git a/curvefs/src/client/common/config.h b/curvefs/src/client/common/config.h
index baa8c69e28..ff0b399e93 100644
--- a/curvefs/src/client/common/config.h
+++ b/curvefs/src/client/common/config.h
@@ -122,7 +122,6 @@ struct DiskCacheOption {
struct S3ClientAdaptorOption {
uint64_t blockSize;
uint64_t chunkSize;
- uint32_t fuseMaxSize;
uint64_t pageSize;
uint32_t prefetchBlocks;
uint32_t prefetchExecQueueNum;
@@ -131,10 +130,12 @@ struct S3ClientAdaptorOption {
uint32_t flushIntervalSec;
uint64_t writeCacheMaxByte;
uint64_t readCacheMaxByte;
+ uint32_t readCacheThreads;
uint32_t nearfullRatio;
uint32_t baseSleepUs;
uint32_t maxReadRetryIntervalMs;
uint32_t readRetryIntervalMs;
+ uint32_t objectPrefix;
DiskCacheOption diskCacheOpt;
};
@@ -173,6 +174,59 @@ struct RefreshDataOption {
uint64_t maxDataSize = 1024;
uint32_t refreshDataIntervalSec = 30;
};
+
+// { filesystem option
+struct KernelCacheOption {
+ uint32_t entryTimeoutSec;
+ uint32_t dirEntryTimeoutSec;
+ uint32_t attrTimeoutSec;
+ uint32_t dirAttrTimeoutSec;
+};
+
+struct LookupCacheOption {
+ uint64_t lruSize;
+ uint32_t negativeTimeoutSec;
+ uint32_t minUses;
+};
+
+struct DirCacheOption {
+ uint64_t lruSize;
+ uint32_t timeoutSec;
+};
+
+struct AttrWatcherOption {
+ uint64_t lruSize;
+};
+
+struct OpenFilesOption {
+ uint64_t lruSize;
+ uint32_t deferSyncSecond;
+};
+
+struct RPCOption {
+ uint32_t listDentryLimit;
+};
+
+struct DeferSyncOption {
+ uint32_t delay;
+ bool deferDirMtime;
+};
+
+struct FileSystemOption {
+ bool cto;
+ bool disableXattr;
+ uint32_t maxNameLength;
+ uint32_t blockSize = 0x10000u;
+ KernelCacheOption kernelCacheOption;
+ LookupCacheOption lookupCacheOption;
+ DirCacheOption dirCacheOption;
+ OpenFilesOption openFilesOption;
+ AttrWatcherOption attrWatcherOption;
+ RPCOption rpcOption;
+ DeferSyncOption deferSyncOption;
+};
+// }
+
struct FuseClientOption {
MdsOption mdsOpt;
MetaCacheOpt metaCacheOpt;
@@ -186,22 +240,13 @@ struct FuseClientOption {
LeaseOpt leaseOpt;
RefreshDataOption refreshDataOption;
KVClientManagerOpt kvClientManagerOpt;
+ FileSystemOption fileSystemOption;
- double attrTimeOut;
- double entryTimeOut;
uint32_t listDentryLimit;
uint32_t listDentryThreads;
- uint32_t flushPeriodSec;
- uint32_t maxNameLength;
- uint64_t iCacheLruSize;
- uint64_t dCacheLruSize;
- bool enableICacheMetrics;
- bool enableDCacheMetrics;
- uint32_t lruTimeOutSec;
uint32_t dummyServerStartPort;
bool enableMultiMountPointRename = false;
bool enableFuseSplice = false;
- bool disableXattr = false;
uint32_t downloadMaxRetryTimes;
uint32_t warmupThreadsNum = 10;
};
diff --git a/curvefs/src/client/curve_fuse_op.cpp b/curvefs/src/client/curve_fuse_op.cpp
index fb49c9c83d..47d54cc3b1 100644
--- a/curvefs/src/client/curve_fuse_op.cpp
+++ b/curvefs/src/client/curve_fuse_op.cpp
@@ -29,7 +29,7 @@
#include "curvefs/src/client/curve_fuse_op.h"
#include "curvefs/src/client/fuse_client.h"
-#include "curvefs/src/client/error_code.h"
+#include "curvefs/src/client/filesystem/error.h"
#include "curvefs/src/client/common/config.h"
#include "curvefs/src/client/common/common.h"
#include "src/common/configuration.h"
@@ -43,6 +43,8 @@
#include "curvefs/src/common/metric_utils.h"
#include "curvefs/src/common/dynamic_vlog.h"
#include "curvefs/src/client/warmup/warmup_manager.h"
+#include "curvefs/src/client/filesystem/meta.h"
+#include "curvefs/src/client/filesystem/access_log.h"
using ::curve::common::Configuration;
using ::curvefs::client::CURVEFS_ERROR;
@@ -55,7 +57,16 @@ using ::curvefs::client::rpcclient::MDSBaseClient;
using ::curvefs::client::metric::ClientOpMetric;
using ::curvefs::common::LatencyUpdater;
using ::curvefs::client::metric::InflightGuard;
-using ::curvefs::client::common::FileHandle;
+using ::curvefs::client::filesystem::EntryOut;
+using ::curvefs::client::filesystem::AttrOut;
+using ::curvefs::client::filesystem::FileOut;
+using ::curvefs::client::filesystem::AccessLogGuard;
+using ::curvefs::client::filesystem::StrFormat;
+using ::curvefs::client::filesystem::InitAccessLog;
+using ::curvefs::client::filesystem::Logger;
+using ::curvefs::client::filesystem::StrEntry;
+using ::curvefs::client::filesystem::StrAttr;
+using ::curvefs::client::filesystem::StrMode;
using ::curvefs::common::FLAGS_vlog_level;
@@ -108,7 +119,7 @@ int GetFsInfo(const char* fsName, FsInfo* fsInfo) {
} // namespace
-int InitGlog(const char *confPath, const char *argv0) {
+int InitLog(const char *confPath, const char *argv0) {
Configuration conf;
conf.SetConfigPath(confPath);
if (!conf.LoadConfig()) {
@@ -131,21 +142,24 @@ int InitGlog(const char *confPath, const char *argv0) {
// initialize logging module
google::InitGoogleLogging(argv0);
+ bool succ = InitAccessLog(FLAGS_log_dir);
+ if (!succ) {
+ return -1;
+ }
return 0;
}
-int InitFuseClient(const char *confPath, const char* fsName,
- const char *fsType, const char *mdsAddr) {
+int InitFuseClient(const struct MountOption *mountOption) {
g_clientOpMetric = new ClientOpMetric();
Configuration conf;
- conf.SetConfigPath(confPath);
+ conf.SetConfigPath(mountOption->conf);
if (!conf.LoadConfig()) {
- LOG(ERROR) << "LoadConfig failed, confPath = " << confPath;
+ LOG(ERROR) << "LoadConfig failed, confPath = " << mountOption->conf;
return -1;
}
- if (mdsAddr)
- conf.SetStringValue("mdsOpt.rpcRetryOpt.addrs", mdsAddr);
+ if (mountOption->mdsAddr)
+ conf.SetStringValue("mdsOpt.rpcRetryOpt.addrs", mountOption->mdsAddr);
conf.PrintConfig();
@@ -153,11 +167,12 @@ int InitFuseClient(const char *confPath, const char* fsName,
curvefs::client::common::InitFuseClientOption(&conf, g_fuseClientOption);
std::shared_ptr fsInfo = std::make_shared();
- if (GetFsInfo(fsName, fsInfo.get()) != 0) {
+ if (GetFsInfo(mountOption->fsName, fsInfo.get()) != 0) {
return -1;
}
- std::string fsTypeStr = (fsType == nullptr) ? "" : fsType;
+ std::string fsTypeStr =
+ (mountOption->fsType == nullptr) ? "" : mountOption->fsType;
std::string fsTypeMds;
if (fsInfo->fstype() == FSType::TYPE_S3) {
fsTypeMds = "s3";
@@ -187,6 +202,11 @@ int InitFuseClient(const char *confPath, const char* fsName,
return -1;
}
+ ret = g_ClientInstance->SetMountStatus(mountOption);
+ if (ret != CURVEFS_ERROR::OK) {
+ return -1;
+ }
+
return 0;
}
@@ -200,96 +220,17 @@ void UnInitFuseClient() {
delete g_clientOpMetric;
}
-void FuseOpInit(void *userdata, struct fuse_conn_info *conn) {
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpInit(userdata, conn);
- if (ret != CURVEFS_ERROR::OK) {
- LOG(FATAL) << "FuseOpInit failed, ret = " << ret;
- }
- EnableSplice(conn);
- LOG(INFO) << "Fuse op init success!";
-}
-
-void FuseOpDestroy(void *userdata) {
- g_ClientInstance->FuseOpDestroy(userdata);
-}
-
-void FuseReplyErrByErrCode(fuse_req_t req, CURVEFS_ERROR errcode) {
- switch (errcode) {
- case CURVEFS_ERROR::OK:
- fuse_reply_err(req, 0);
- break;
- case CURVEFS_ERROR::NO_SPACE:
- fuse_reply_err(req, ENOSPC);
- break;
- case CURVEFS_ERROR::NOTEXIST:
- fuse_reply_err(req, ENOENT);
- break;
- case CURVEFS_ERROR::NOPERMISSION:
- fuse_reply_err(req, EACCES);
- break;
- case CURVEFS_ERROR::INVALIDPARAM:
- fuse_reply_err(req, EINVAL);
- break;
- case CURVEFS_ERROR::NOTEMPTY:
- fuse_reply_err(req, ENOTEMPTY);
- break;
- case CURVEFS_ERROR::NOTSUPPORT:
- fuse_reply_err(req, EOPNOTSUPP);
- break;
- case CURVEFS_ERROR::NAMETOOLONG:
- fuse_reply_err(req, ENAMETOOLONG);
- break;
- case CURVEFS_ERROR::OUT_OF_RANGE:
- fuse_reply_err(req, ERANGE);
- break;
- case CURVEFS_ERROR::NODATA:
- fuse_reply_err(req, ENODATA);
- break;
- case CURVEFS_ERROR::EXISTS:
- fuse_reply_err(req, EEXIST);
- break;
- default:
- fuse_reply_err(req, EIO);
- break;
- }
-}
-
-void FuseOpLookup(fuse_req_t req, fuse_ino_t parent, const char *name) {
- InflightGuard guard(&g_clientOpMetric->opLookup.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opLookup.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpLookup(req, parent, name, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opLookup.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_entry(req, &e);
-}
-
-void FuseOpGetAttr(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opGetAttr.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opGetAttr.latency);
- struct stat attr;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpGetAttr(req, ino, fi, &attr);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opGetAttr.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_attr(req, &attr, g_fuseClientOption->attrTimeOut);
-}
-
int AddWarmupTask(curvefs::client::common::WarmupType type, fuse_ino_t key,
- const std::string &path) {
+ const std::string &path,
+ curvefs::client::common::WarmupStorageType storageType) {
int ret = 0;
bool result = true;
switch (type) {
case curvefs::client::common::WarmupType::kWarmupTypeList:
- result = g_ClientInstance->PutWarmFilelistTask(key);
+ result = g_ClientInstance->PutWarmFilelistTask(key, storageType);
break;
case curvefs::client::common::WarmupType::kWarmupTypeSingle:
- result = g_ClientInstance->PutWarmFileTask(key, path);
+ result = g_ClientInstance->PutWarmFileTask(key, path, storageType);
break;
default:
// not support add warmup type (warmup single file/dir or filelist)
@@ -323,16 +264,23 @@ int Warmup(fuse_ino_t key, const std::string& name, const std::string& value) {
std::vector opTypePath;
curve::common::SplitString(value, "\n", &opTypePath);
- if (opTypePath.size() != 3) {
+ if (opTypePath.size() != curvefs::client::common::kWarmupOpNum) {
LOG(ERROR) << name << " has invalid xattr value " << value;
return ERANGE;
}
+ auto storageType =
+ curvefs::client::common::GetWarmupStorageType(opTypePath[3]);
+ if (storageType ==
+ curvefs::client::common::WarmupStorageType::kWarmupStorageTypeUnknown) {
+ LOG(ERROR) << name << " not support storage type: " << value;
+ return ERANGE;
+ }
int ret = 0;
switch (curvefs::client::common::GetWarmupOpType(opTypePath[0])) {
case curvefs::client::common::WarmupOpType::kWarmupOpAdd:
ret =
AddWarmupTask(curvefs::client::common::GetWarmupType(opTypePath[1]),
- key, opTypePath[2]);
+ key, opTypePath[2], storageType);
if (ret != 0) {
LOG(ERROR) << name << " has invalid xattr value " << value;
}
@@ -344,355 +292,593 @@ int Warmup(fuse_ino_t key, const std::string& name, const std::string& value) {
return ret;
}
-void FuseOpSetXattr(fuse_req_t req, fuse_ino_t ino, const char* name,
- const char* value, size_t size, int flags) {
- std::string xattrValue(value, size);
- VLOG(9) << "FuseOpSetXattr"
- << " ino " << ino << " name " << name << " value " << xattrValue
- << " flags " << flags;
- if (strcmp(name, curvefs::client::common::kCurveFsWarmupXAttr) == 0) {
- // warmup
- int code = Warmup(ino, name, xattrValue);
- fuse_reply_err(req, code);
- } else {
- // set xattr
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpSetXattr(req, ino, name,
- value, size, flags);
- FuseReplyErrByErrCode(req, ret);
- }
+namespace {
- VLOG(9) << "FuseOpSetXattr done";
-}
+struct CodeGuard {
+ explicit CodeGuard(CURVEFS_ERROR* rc, bvar::Adder* ecount)
+ : rc_(rc), ecount_(ecount) {}
-void FuseOpGetXattr(fuse_req_t req, fuse_ino_t ino, const char *name,
- size_t size) {
- if (strcmp(name, curvefs::client::common::kCurveFsWarmupXAttr) == 0) {
- // warmup
- std::string data;
- QueryWarmupTask(ino, &data);
- if (size == 0) {
- fuse_reply_xattr(req, data.length());
- } else {
- fuse_reply_buf(req, data.data(), data.length());
+ ~CodeGuard() {
+ if (*rc_ != CURVEFS_ERROR::OK) {
+ (*ecount_) << 1;
}
- return;
- }
- InflightGuard guard(&g_clientOpMetric->opGetXattr.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opGetXattr.latency);
- std::string buf;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpGetXattr(req, ino, name,
- &buf, size);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opGetXattr.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
}
- if (size == 0) {
- fuse_reply_xattr(req, buf.length());
- } else {
- fuse_reply_buf(req, buf.data(), buf.length());
- }
+ CURVEFS_ERROR* rc_;
+ bvar::Adder* ecount_;
+};
+
+FuseClient* Client() {
+ return g_ClientInstance;
}
-void FuseOpListXattr(fuse_req_t req, fuse_ino_t ino, size_t size) {
- InflightGuard guard(&g_clientOpMetric->opListXattr.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opListXattr.latency);
- std::unique_ptr buf(new char[size]);
- std::memset(buf.get(), 0, size);
- size_t xattrSize = 0;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpListXattr(req, ino, buf.get(),
- size, &xattrSize);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opListXattr.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
+const char* warmupXAttr = ::curvefs::client::common::kCurveFsWarmupXAttr;
- if (size == 0) {
- fuse_reply_xattr(req, xattrSize);
- } else {
- fuse_reply_buf(req, buf.get(), xattrSize);
- }
+bool IsWamupReq(const char* name) {
+ return strcmp(name, warmupXAttr) == 0;
}
-void FuseOpReadDir(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opReadDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opReadDir.latency);
- char *buffer = nullptr;
- size_t rSize = 0;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpReadDirPlus(req, ino,
- size, off, fi, &buffer, &rSize, false);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opReadDir.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_buf(req, buffer, rSize);
-}
+void TriggerWarmup(fuse_req_t req,
+ fuse_ino_t ino,
+ const char* name,
+ const char* value,
+ size_t size) {
+ auto fs = Client()->GetFileSystem();
-void FuseOpReadDirPlus(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opReadDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opReadDir.latency);
- char *buffer = nullptr;
- size_t rSize = 0;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpReadDirPlus(req, ino,
- size, off, fi, &buffer, &rSize, true);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opReadDir.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_buf(req, buffer, rSize);
+ std::string xattr(value, size);
+ int code = Warmup(ino, name, xattr);
+ fuse_reply_err(req, code);
}
-void FuseOpOpen(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opOpen.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opOpen.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpOpen(req, ino, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opOpen.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
+void QueryWarmup(fuse_req_t req, fuse_ino_t ino, size_t size) {
+ auto fs = Client()->GetFileSystem();
+
+ std::string data;
+ QueryWarmupTask(ino, &data);
+ if (size == 0) {
+ return fs->ReplyXattr(req, data.length());
}
- fuse_reply_open(req, fi);
+ return fs->ReplyBuffer(req, data.data(), data.length());
}
-void FuseOpRead(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opRead.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opRead.latency);
- std::unique_ptr buffer(new char[size]);
- size_t rSize = 0;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpRead(req, ino, size, off, fi,
- buffer.get(), &rSize);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opRead.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
+void ReadThrottleAdd(size_t size) { Client()->Add(true, size); }
+void WriteThrottleAdd(size_t size) { Client()->Add(false, size); }
- struct fuse_bufvec bufvec = FUSE_BUFVEC_INIT(rSize);
- bufvec.buf[0].mem = buffer.get();
+#define MetricGuard(REQUEST) \
+ InflightGuard iGuard(&g_clientOpMetric->op##REQUEST.inflightOpNum); \
+ CodeGuard cGuard(&rc, &g_clientOpMetric->op##REQUEST.ecount); \
+ LatencyUpdater updater(&g_clientOpMetric->op##REQUEST.latency)
- fuse_reply_data(req, &bufvec, FUSE_BUF_SPLICE_MOVE);
-}
+} // namespace
-void FuseOpWrite(fuse_req_t req, fuse_ino_t ino, const char *buf, size_t size,
- off_t off, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opWrite.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opWrite.latency);
- size_t wSize = 0;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpWrite(req, ino, buf, size, off, fi, &wSize);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opWrite.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
+void FuseOpInit(void *userdata, struct fuse_conn_info *conn) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ AccessLogGuard log([&](){
+ return StrFormat("init : %s", StrErr(rc));
+ });
+
+ rc = client->FuseOpInit(userdata, conn);
+ if (rc != CURVEFS_ERROR::OK) {
+ LOG(FATAL) << "FuseOpInit() failed, retCode = " << rc;
+ } else {
+ EnableSplice(conn);
+ LOG(INFO) << "FuseOpInit() success, retCode = " << rc;
}
- fuse_reply_write(req, wSize);
}
-void FuseOpCreate(fuse_req_t req, fuse_ino_t parent, const char *name,
- mode_t mode, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opCreate.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opCreate.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpCreate(req, parent, name, mode, fi, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opCreate.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_create(req, &e, fi);
+void FuseOpDestroy(void *userdata) {
+ auto client = Client();
+ AccessLogGuard log([&](){
+ return StrFormat("destory : OK");
+ });
+ client->FuseOpDestroy(userdata);
}
-void FuseOpMkNod(fuse_req_t req, fuse_ino_t parent, const char *name,
- mode_t mode, dev_t rdev) {
- InflightGuard guard(&g_clientOpMetric->opMkNod.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opMkNod.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpMkNod(req, parent, name, mode, rdev, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opMkNod.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
+void FuseOpLookup(fuse_req_t req, fuse_ino_t parent, const char* name) {
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Lookup);
+ AccessLogGuard log([&](){
+ return StrFormat("lookup (%d,%s): %s%s",
+ parent, name, StrErr(rc), StrEntry(entryOut));
+ });
+
+ rc = client->FuseOpLookup(req, parent, name, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
}
- fuse_reply_entry(req, &e);
+ return fs->ReplyEntry(req, &entryOut);
}
-void FuseOpMkDir(fuse_req_t req, fuse_ino_t parent, const char *name,
+void FuseOpGetAttr(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ AttrOut attrOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(GetAttr);
+ AccessLogGuard log([&](){
+ return StrFormat("getattr (%d): %s%s",
+ ino, StrErr(rc), StrAttr(attrOut));
+ });
+
+ rc = client->FuseOpGetAttr(req, ino, fi, &attrOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyAttr(req, &attrOut);
+}
+
+void FuseOpSetAttr(fuse_req_t req,
+ fuse_ino_t ino,
+ struct stat* attr,
+ int to_set,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ AttrOut attrOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(SetAttr);
+ AccessLogGuard log([&](){
+ return StrFormat("setattr (%d,0x%X): %s%s",
+ ino, to_set, StrErr(rc), StrAttr(attrOut));
+ });
+
+ rc = client->FuseOpSetAttr(req, ino, attr, to_set, fi, &attrOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyAttr(req, &attrOut);
+}
+
+void FuseOpReadLink(fuse_req_t req, fuse_ino_t ino) {
+ CURVEFS_ERROR rc;
+ std::string link;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(ReadLink);
+ AccessLogGuard log([&](){
+ return StrFormat("readlink (%d): %s %s", ino, StrErr(rc), link.c_str());
+ });
+
+ rc = client->FuseOpReadLink(req, ino, &link);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyReadlink(req, link);
+}
+
+void FuseOpMkNod(fuse_req_t req,
+ fuse_ino_t parent,
+ const char* name,
+ mode_t mode,
+ dev_t rdev) {
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(MkNod);
+ AccessLogGuard log([&](){
+ return StrFormat("mknod (%d,%s,%s:0%04o): %s%s",
+ parent, name, StrMode(mode), mode,
+ StrErr(rc), StrEntry(entryOut));
+ });
+
+ rc = client->FuseOpMkNod(req, parent, name, mode, rdev, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyEntry(req, &entryOut);
+}
+
+void FuseOpMkDir(fuse_req_t req,
+ fuse_ino_t parent,
+ const char* name,
mode_t mode) {
- InflightGuard guard(&g_clientOpMetric->opMkDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opMkDir.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpMkDir(req, parent, name, mode, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opMkDir.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(MkDir);
+ AccessLogGuard log([&](){
+ return StrFormat("mkdir (%d,%s,%s:0%04o): %s%s",
+ parent, name, StrMode(mode), mode,
+ StrErr(rc), StrEntry(entryOut));
+ });
+
+ rc = client->FuseOpMkDir(req, parent, name, mode, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
}
- fuse_reply_entry(req, &e);
+ return fs->ReplyEntry(req, &entryOut);
}
void FuseOpUnlink(fuse_req_t req, fuse_ino_t parent, const char *name) {
- InflightGuard guard(&g_clientOpMetric->opUnlink.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opUnlink.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpUnlink(req, parent, name);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opUnlink.ecount << 1;
- }
- FuseReplyErrByErrCode(req, ret);
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Unlink);
+ AccessLogGuard log([&](){
+ return StrFormat("unlink (%d,%s): %s", parent, name, StrErr(rc));
+ });
+
+ rc = client->FuseOpUnlink(req, parent, name);
+ return fs->ReplyError(req, rc);
}
void FuseOpRmDir(fuse_req_t req, fuse_ino_t parent, const char *name) {
- InflightGuard guard(&g_clientOpMetric->opRmDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opRmDir.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpRmDir(req, parent, name);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opRmDir.ecount << 1;
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(RmDir);
+ AccessLogGuard log([&](){
+ return StrFormat("rmdir (%d,%s): %s", parent, name, StrErr(rc));
+ });
+
+ rc = client->FuseOpRmDir(req, parent, name);
+ return fs->ReplyError(req, rc);
+}
+
+void FuseOpSymlink(fuse_req_t req,
+ const char *link,
+ fuse_ino_t parent,
+ const char* name) {
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Symlink);
+ AccessLogGuard log([&](){
+ return StrFormat("symlink (%d,%s,%s): %s%s",
+ parent, name, link, StrErr(rc), StrEntry(entryOut));
+ });
+
+ rc = client->FuseOpSymlink(req, link, parent, name, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyEntry(req, &entryOut);
+}
+
+void FuseOpRename(fuse_req_t req,
+ fuse_ino_t parent,
+ const char *name,
+ fuse_ino_t newparent,
+ const char *newname,
+ unsigned int flags) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Rename);
+ AccessLogGuard log([&](){
+ return StrFormat("rename (%d,%s,%d,%s,%d): %s",
+ parent, name, newparent, newname, flags, StrErr(rc));
+ });
+
+ rc = client->FuseOpRename(req, parent, name, newparent, newname, flags);
+ return fs->ReplyError(req, rc);
+}
+
+void FuseOpLink(fuse_req_t req,
+ fuse_ino_t ino,
+ fuse_ino_t newparent,
+ const char *newname) {
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Link);
+ AccessLogGuard log([&](){
+ return StrFormat(
+ "link (%d,%d,%s): %s%s",
+ ino, newparent, newname, StrErr(rc), StrEntry(entryOut));
+ });
+
+ rc = client->FuseOpLink(req, ino, newparent, newname, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
}
- FuseReplyErrByErrCode(req, ret);
+ return fs->ReplyEntry(req, &entryOut);
}
-void FuseOpOpenDir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opOpenDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opOpenDir.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpOpenDir(req, ino, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opOpenDir.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
+void FuseOpOpen(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ FileOut fileOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Open);
+ AccessLogGuard log([&](){
+ return StrFormat("open (%d): %s [fh:%d]", ino, StrErr(rc), fi->fh);
+ });
+
+ rc = client->FuseOpOpen(req, ino, fi, &fileOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ fs->ReplyError(req, rc);
return;
}
- fuse_reply_open(req, fi);
+ return fs->ReplyOpen(req, &fileOut);
}
-void FuseOpReleaseDir(fuse_req_t req, fuse_ino_t ino,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opReleaseDir.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opReleaseDir.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpReleaseDir(req, ino, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opReleaseDir.ecount << 1;
+void FuseOpRead(fuse_req_t req,
+ fuse_ino_t ino,
+ size_t size,
+ off_t off,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ size_t rSize = 0;
+ std::unique_ptr buffer(new char[size]);
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Read);
+ AccessLogGuard log([&](){
+ return StrFormat("read (%d,%d,%d,%d): %s (%d)",
+ ino, size, off, fi->fh, StrErr(rc), rSize);
+ });
+
+ ReadThrottleAdd(size);
+ rc = client->FuseOpRead(req, ino, size, off, fi, buffer.get(), &rSize);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
}
- FuseReplyErrByErrCode(req, ret);
+ struct fuse_bufvec bufvec = FUSE_BUFVEC_INIT(rSize);
+ bufvec.buf[0].mem = buffer.get();
+ return fs->ReplyData(req, &bufvec, FUSE_BUF_SPLICE_MOVE);
}
-void FuseOpRename(fuse_req_t req, fuse_ino_t parent, const char *name,
- fuse_ino_t newparent, const char *newname,
- unsigned int flags) {
- // TODO(Wine93): the flag RENAME_EXCHANGE and RENAME_NOREPLACE
- // is only used in linux interface renameat(), not required by posix,
- // we can ignore it now
- InflightGuard guard(&g_clientOpMetric->opRename.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opRename.latency);
- CURVEFS_ERROR ret = CURVEFS_ERROR::OK;
- if (flags != 0) {
- ret = CURVEFS_ERROR::INVALIDPARAM;
- } else {
- ret = g_ClientInstance->FuseOpRename(req, parent, name, newparent,
- newname);
- }
+void FuseOpWrite(fuse_req_t req,
+ fuse_ino_t ino,
+ const char* buf,
+ size_t size,
+ off_t off,
+ struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ FileOut fileOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Read);
+ AccessLogGuard log([&](){
+ return StrFormat("write (%d,%d,%d,%d): %s (%d)",
+ ino, size, off, fi->fh, StrErr(rc), fileOut.nwritten);
+ });
+
+ WriteThrottleAdd(size);
+ rc = client->FuseOpWrite(req, ino, buf, size, off, fi, &fileOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyWrite(req, &fileOut);
+}
+
+void FuseOpFlush(fuse_req_t req,
+ fuse_ino_t ino,
+ struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Flush);
+ AccessLogGuard log([&](){
+ return StrFormat("flush (%d,%d): %s", ino, fi->fh, StrErr(rc));
+ });
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opRename.ecount << 1;
- }
- FuseReplyErrByErrCode(req, ret);
+ rc = client->FuseOpFlush(req, ino, fi);
+ return fs->ReplyError(req, rc);
}
-void FuseOpSetAttr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
- int to_set, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opSetAttr.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opSetAttr.latency);
- struct stat attrOut;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpSetAttr(req, ino, attr, to_set, fi, &attrOut);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opSetAttr.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_attr(req, &attrOut, g_fuseClientOption->attrTimeOut);
+void FuseOpRelease(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Release);
+ AccessLogGuard log([&](){
+ return StrFormat("release (%d,%d): %s", ino, fi->fh, StrErr(rc));
+ });
+
+ rc = client->FuseOpRelease(req, ino, fi);
+ return fs->ReplyError(req, rc);
+}
+
+void FuseOpFsync(fuse_req_t req,
+ fuse_ino_t ino,
+ int datasync,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Fsync);
+ AccessLogGuard log([&](){
+ return StrFormat("fsync (%d,%d): %s", ino, datasync, StrErr(rc));
+ });
+
+ rc = client->FuseOpFsync(req, ino, datasync, fi);
+ return fs->ReplyError(req, rc);
}
-void FuseOpSymlink(fuse_req_t req, const char *link, fuse_ino_t parent,
- const char *name) {
- InflightGuard guard(&g_clientOpMetric->opSymlink.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opSymlink.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpSymlink(req, link, parent, name, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opSymlink.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_entry(req, &e);
-}
+void FuseOpOpenDir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(OpenDir);
+ AccessLogGuard log([&](){
+ return StrFormat("opendir (%d): %s [fh:%d]", ino, StrErr(rc), fi->fh);
+ });
+
+ rc = client->FuseOpOpenDir(req, ino, fi);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyOpen(req, fi);
+}
+
+void FuseOpReadDir(fuse_req_t req,
+ fuse_ino_t ino,
+ size_t size,
+ off_t off,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ char *buffer;
+ size_t rSize;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(ReadDir);
+ AccessLogGuard log([&](){
+ return StrFormat("readdir (%d,%d,%d): %s (%d)",
+ ino, size, off, StrErr(rc), rSize);
+ });
+
+ rc = client->FuseOpReadDir(req, ino, size, off, fi, &buffer, &rSize, false);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyBuffer(req, buffer, rSize);
+}
+
+void FuseOpReadDirPlus(fuse_req_t req,
+ fuse_ino_t ino,
+ size_t size,
+ off_t off,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ char *buffer;
+ size_t rSize;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(ReadDir);
+ AccessLogGuard log([&](){
+ return StrFormat("readdirplus (%d,%d,%d): %s (%d)",
+ ino, size, off, StrErr(rc), rSize);
+ });
+
+ rc = client->FuseOpReadDir(req, ino, size, off, fi, &buffer, &rSize, true);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+
+ return fs->ReplyBuffer(req, buffer, rSize);
+}
+
+void FuseOpReleaseDir(fuse_req_t req,
+ fuse_ino_t ino,
+ struct fuse_file_info *fi) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(ReleaseDir);
+ AccessLogGuard log([&](){
+ return StrFormat("releasedir (%d,%d): %s", ino, fi->fh, StrErr(rc));
+ });
-void FuseOpLink(fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,
- const char *newname) {
- InflightGuard guard(&g_clientOpMetric->opLink.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opLink.latency);
- fuse_entry_param e;
- CURVEFS_ERROR ret =
- g_ClientInstance->FuseOpLink(req, ino, newparent, newname, &e);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opLink.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_entry(req, &e);
+ rc = client->FuseOpReleaseDir(req, ino, fi);
+ return fs->ReplyError(req, rc);
}
-void FuseOpReadLink(fuse_req_t req, fuse_ino_t ino) {
- InflightGuard guard(&g_clientOpMetric->opReadLink.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opReadLink.latency);
- std::string linkStr;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpReadLink(req, ino, &linkStr);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opReadLink.ecount << 1;
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_readlink(req, linkStr.c_str());
-}
+void FuseOpStatFs(fuse_req_t req, fuse_ino_t ino) {
+ CURVEFS_ERROR rc;
+ struct statvfs stbuf;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ AccessLogGuard log([&](){
+ return StrFormat("statfs (%d): %s", ino, StrErr(rc));
+ });
+
+ rc = client->FuseOpStatFs(req, ino, &stbuf);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyStatfs(req, &stbuf);
+}
+
+void FuseOpSetXattr(fuse_req_t req,
+ fuse_ino_t ino,
+ const char* name,
+ const char* value,
+ size_t size,
+ int flags) {
+ CURVEFS_ERROR rc;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ AccessLogGuard log([&](){
+ return StrFormat("setxattr (%d,%s,%d,%d): %s",
+ ino, name, size, flags, StrErr(rc));
+ });
+
+ if (IsWamupReq(name)) {
+ return TriggerWarmup(req, ino, name, value, size);
+ }
+ rc = client->FuseOpSetXattr(req, ino, name, value, size, flags);
+ return fs->ReplyError(req, rc);
+}
+
+void FuseOpGetXattr(fuse_req_t req,
+ fuse_ino_t ino,
+ const char *name,
+ size_t size) {
+ CURVEFS_ERROR rc;
+ std::string value;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(GetXattr);
+ AccessLogGuard log([&](){
+ return StrFormat("getxattr (%d,%s,%d): %s (%d)",
+ ino, name, size, StrErr(rc), value.size());
+ });
-void FuseOpRelease(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opRelease.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opRelease.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpRelease(req, ino, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opRelease.ecount << 1;
+ if (IsWamupReq(name)) {
+ return QueryWarmup(req, ino, size);
}
- FuseReplyErrByErrCode(req, ret);
-}
-void FuseOpFsync(fuse_req_t req, fuse_ino_t ino, int datasync,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opFsync.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opFsync.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpFsync(req, ino, datasync, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opFsync.ecount << 1;
+ rc = Client()->FuseOpGetXattr(req, ino, name, &value, size);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ } else if (size == 0) {
+ return fs->ReplyXattr(req, value.length());
}
- FuseReplyErrByErrCode(req, ret);
+ return fs->ReplyBuffer(req, value.data(), value.length());
}
-void FuseOpFlush(fuse_req_t req, fuse_ino_t ino,
- struct fuse_file_info *fi) {
- InflightGuard guard(&g_clientOpMetric->opFlush.inflightOpNum);
- LatencyUpdater updater(&g_clientOpMetric->opFlush.latency);
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpFlush(req, ino, fi);
- if (ret != CURVEFS_ERROR::OK) {
- g_clientOpMetric->opFlush.ecount << 1;
- }
- FuseReplyErrByErrCode(req, ret);
+void FuseOpListXattr(fuse_req_t req, fuse_ino_t ino, size_t size) {
+ CURVEFS_ERROR rc;
+ size_t xattrSize = 0;
+ std::unique_ptr buf(new char[size]);
+ std::memset(buf.get(), 0, size);
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(ListXattr);
+ AccessLogGuard log([&](){
+ return StrFormat("listxattr (%d,%s): %s (%d)",
+ ino, size, StrErr(rc), xattrSize);
+ });
+
+ rc = Client()->FuseOpListXattr(req, ino, buf.get(), size, &xattrSize);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ } else if (size == 0) {
+ return fs->ReplyXattr(req, xattrSize);
+ }
+ return fs->ReplyBuffer(req, buf.get(), xattrSize);
+}
+
+void FuseOpCreate(fuse_req_t req,
+ fuse_ino_t parent,
+ const char* name,
+ mode_t mode,
+ struct fuse_file_info* fi) {
+ CURVEFS_ERROR rc;
+ EntryOut entryOut;
+ auto client = Client();
+ auto fs = client->GetFileSystem();
+ MetricGuard(Create);
+ AccessLogGuard log([&](){
+ return StrFormat("create (%d,%s): %s%s [fh:%d]",
+ parent, name, StrErr(rc), StrEntry(entryOut), fi->fh);
+ });
+
+ rc = client->FuseOpCreate(req, parent, name, mode, fi, &entryOut);
+ if (rc != CURVEFS_ERROR::OK) {
+ return fs->ReplyError(req, rc);
+ }
+ return fs->ReplyCreate(req, &entryOut, fi);
}
void FuseOpBmap(fuse_req_t req,
@@ -700,15 +886,8 @@ void FuseOpBmap(fuse_req_t req,
size_t /*blocksize*/,
uint64_t /*idx*/) {
// TODO(wuhanqing): implement for volume storage
- FuseReplyErrByErrCode(req, CURVEFS_ERROR::NOTSUPPORT);
-}
+ auto client = Client();
+ auto fs = client->GetFileSystem();
-void FuseOpStatFs(fuse_req_t req, fuse_ino_t ino) {
- struct statvfs stbuf;
- CURVEFS_ERROR ret = g_ClientInstance->FuseOpStatFs(req, ino, &stbuf);
- if (ret != CURVEFS_ERROR::OK) {
- FuseReplyErrByErrCode(req, ret);
- return;
- }
- fuse_reply_statfs(req, &stbuf);
+ return fs->ReplyError(req, CURVEFS_ERROR::NOTSUPPORT);
}
diff --git a/curvefs/src/client/curve_fuse_op.h b/curvefs/src/client/curve_fuse_op.h
index b3a5944134..231cf26526 100644
--- a/curvefs/src/client/curve_fuse_op.h
+++ b/curvefs/src/client/curve_fuse_op.h
@@ -37,10 +37,9 @@
extern "C" {
#endif
-int InitGlog(const char *confPath, const char *argv0);
+int InitLog(const char *confPath, const char *argv0);
-int InitFuseClient(const char *confPath, const char *fsName,
- const char* fsType, const char* mdsAddr);
+int InitFuseClient(const struct MountOption *mountOption);
void UnInitFuseClient();
diff --git a/curvefs/src/client/dentry_cache_manager.cpp b/curvefs/src/client/dentry_cache_manager.cpp
index 5bd4e68896..afb5e49eef 100644
--- a/curvefs/src/client/dentry_cache_manager.cpp
+++ b/curvefs/src/client/dentry_cache_manager.cpp
@@ -44,31 +44,13 @@ namespace client {
using curve::common::WriteLockGuard;
using NameLockGuard = ::curve::common::GenericNameLockGuard;
-
-void DentryCacheManagerImpl::InsertOrReplaceCache(const Dentry &dentry) {
- std::string key = GetDentryCacheKey(dentry.parentinodeid(), dentry.name());
- if (!curvefs::client::common::FLAGS_enableCto) {
- NameLockGuard lock(nameLock_, key);
- dCache_->Put(key, dentry);
- }
-}
-
-void DentryCacheManagerImpl::DeleteCache(uint64_t parentId,
- const std::string &name) {
- std::string key = GetDentryCacheKey(parentId, name);
- NameLockGuard lock(nameLock_, key);
- dCache_->Remove(key);
-}
+using ::curvefs::client::filesystem::ToFSError;
CURVEFS_ERROR DentryCacheManagerImpl::GetDentry(uint64_t parent,
const std::string &name,
Dentry *out) {
std::string key = GetDentryCacheKey(parent, name);
NameLockGuard lock(nameLock_, key);
- bool ok = dCache_->Get(key, out);
- if (ok) {
- return CURVEFS_ERROR::OK;
- }
MetaStatusCode ret = metaClient_->GetDentry(fsId_, parent, name, out);
if (ret != MetaStatusCode::OK) {
@@ -76,10 +58,7 @@ CURVEFS_ERROR DentryCacheManagerImpl::GetDentry(uint64_t parent,
<< "metaClient_ GetDentry failed, MetaStatusCode = " << ret
<< ", MetaStatusCode_Name = " << MetaStatusCode_Name(ret)
<< ", parent = " << parent << ", name = " << name;
- return MetaStatusCodeToCurvefsErrCode(ret);
- }
- if (!curvefs::client::common::FLAGS_enableCto) {
- dCache_->Put(key, *out);
+ return ToFSError(ret);
}
return CURVEFS_ERROR::OK;
}
@@ -94,12 +73,9 @@ CURVEFS_ERROR DentryCacheManagerImpl::CreateDentry(const Dentry &dentry) {
<< ", MetaStatusCode_Name = " << MetaStatusCode_Name(ret)
<< ", parent = " << dentry.parentinodeid()
<< ", name = " << dentry.name();
- return MetaStatusCodeToCurvefsErrCode(ret);
+ return ToFSError(ret);
}
- if (!curvefs::client::common::FLAGS_enableCto) {
- dCache_->Put(key, dentry);
- }
return CURVEFS_ERROR::OK;
}
@@ -108,14 +84,13 @@ CURVEFS_ERROR DentryCacheManagerImpl::DeleteDentry(uint64_t parent,
FsFileType type) {
std::string key = GetDentryCacheKey(parent, name);
NameLockGuard lock(nameLock_, key);
- dCache_->Remove(key);
MetaStatusCode ret = metaClient_->DeleteDentry(fsId_, parent, name, type);
if (ret != MetaStatusCode::OK && ret != MetaStatusCode::NOT_FOUND) {
LOG(ERROR) << "metaClient_ DeleteInode failed, MetaStatusCode = " << ret
<< ", MetaStatusCode_Name = " << MetaStatusCode_Name(ret)
<< ", parent = " << parent << ", name = " << name;
- return MetaStatusCodeToCurvefsErrCode(ret);
+ return ToFSError(ret);
}
return CURVEFS_ERROR::OK;
}
@@ -149,7 +124,7 @@ CURVEFS_ERROR DentryCacheManagerImpl::ListDentry(uint64_t parent,
<< ", MetaStatusCode_Name = " << MetaStatusCode_Name(ret)
<< ", parent = " << parent << ", last = " << last
<< ", count = " << limit << ", onlyDir = " << onlyDir;
- return MetaStatusCodeToCurvefsErrCode(ret);
+ return ToFSError(ret);
}
if (!onlyDir) {
diff --git a/curvefs/src/client/dentry_cache_manager.h b/curvefs/src/client/dentry_cache_manager.h
index 15d0a80811..84f9f20f53 100644
--- a/curvefs/src/client/dentry_cache_manager.h
+++ b/curvefs/src/client/dentry_cache_manager.h
@@ -33,20 +33,18 @@
#include
#include "curvefs/src/client/rpcclient/metaserver_client.h"
-#include "curvefs/src/client/error_code.h"
#include "src/common/concurrent/concurrent.h"
-#include "src/common/lru_cache.h"
#include "src/common/concurrent/name_lock.h"
+#include "curvefs/src/client/filesystem/error.h"
using ::curvefs::metaserver::Dentry;
-using ::curve::common::TimedLRUCache;
-using ::curve::common::CacheMetrics;
namespace curvefs {
namespace client {
using rpcclient::MetaServerClient;
using rpcclient::MetaServerClientImpl;
+using ::curvefs::client::filesystem::CURVEFS_ERROR;
static const char* kDentryKeyDelimiter = ":";
@@ -59,13 +57,6 @@ class DentryCacheManager {
fsId_ = fsId;
}
- virtual CURVEFS_ERROR Init(uint64_t cacheSize, bool enableCacheMetrics,
- uint32_t cacheTimeOutSec) = 0;
-
- virtual void InsertOrReplaceCache(const Dentry& dentry) = 0;
-
- virtual void DeleteCache(uint64_t parentId, const std::string& name) = 0;
-
virtual CURVEFS_ERROR GetDentry(uint64_t parent,
const std::string &name, Dentry *out) = 0;
@@ -86,30 +77,11 @@ class DentryCacheManager {
class DentryCacheManagerImpl : public DentryCacheManager {
public:
DentryCacheManagerImpl()
- : metaClient_(std::make_shared()),
- dCache_(nullptr) {}
+ : metaClient_(std::make_shared()) {}
explicit DentryCacheManagerImpl(
const std::shared_ptr &metaClient)
- : metaClient_(metaClient),
- dCache_(nullptr) {}
-
- CURVEFS_ERROR Init(uint64_t cacheSize, bool enableCacheMetrics,
- uint32_t cacheTimeOutSec) override {
- if (enableCacheMetrics) {
- dCache_ = std::make_shared<
- TimedLRUCache>(cacheTimeOutSec, cacheSize,
- std::make_shared("dcache"));
- } else {
- dCache_ = std::make_shared<
- TimedLRUCache>(cacheTimeOutSec, cacheSize);
- }
- return CURVEFS_ERROR::OK;
- }
-
- void InsertOrReplaceCache(const Dentry& dentry) override;
-
- void DeleteCache(uint64_t parentId, const std::string& name) override;
+ : metaClient_(metaClient) {}
CURVEFS_ERROR GetDentry(uint64_t parent,
const std::string &name, Dentry *out) override;
@@ -130,8 +102,6 @@ class DentryCacheManagerImpl : public DentryCacheManager {
private:
std::shared_ptr metaClient_;
- // key is parentId + name
- std::shared_ptr> dCache_;
curve::common::GenericNameLock nameLock_;
};
diff --git a/curvefs/src/client/error_code.cpp b/curvefs/src/client/error_code.cpp
deleted file mode 100644
index d2f7c53d93..0000000000
--- a/curvefs/src/client/error_code.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2021 NetEase Inc.
- *
- * 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.
- */
-
-
-/*
- * Project: curve
- * Created Date: Thur May 27 2021
- * Author: xuchaojie
- */
-
-#include "curvefs/src/client/error_code.h"
-
-#include