버드워처 사용하기
이 가이드에서는 Birdwatcher를 사용하여 Milvus의 상태를 확인하고 즉석에서 구성하는 방법을 안내합니다.
버드워처 시작하기
Birdwatcher는 명령줄 도구로, 다음과 같이 시작할 수 있습니다:
./birdwatcher
그러면 다음과 같은 프롬프트가 표시됩니다:
Offline >
etcd에 연결
다른 작업을 하기 전에 Birdwatcher를 사용하여 etcd에 연결해야 합니다.
기본 설정으로 연결하기
Offline > connect Milvus(by-dev) >
포드에 있는 Birdwatcher에서 연결하기
Kubernetes 포드에서 Birdwatcher를 실행하기로 선택한 경우, 먼저 다음과 같이 etcd의 IP 주소를 얻어야 합니다:
kubectl get pod my-release-etcd-0 -o 'jsonpath={.status.podIP}'
그런 다음 파드의 셸에 액세스합니다.
kubectl exec --stdin --tty birdwatcher-7f48547ddc-zcbxj -- /bin/sh
마지막으로 반환된 IP 주소를 사용하여 다음과 같이 etcd에 연결합니다:
Offline > connect --etcd ${ETCD_IP_ADDR}:2379 Milvus(by-dev)
다른 루트 경로로 연결하기
Milvus의 루트 경로가
by-dev
와 다르고 루트 경로가 잘못되었다는 오류 메시지가 표시되는 경우, 다음과 같이 etcd에 연결할 수 있습니다:Offline > connect --rootPath my-release Milvus(my-release) >
Milvus의 루트 경로를 모르는 경우, 다음과 같이 etcd에 연결하세요:
Offline > connect --dry using dry mode, ignore rootPath and metaPath Etcd(127.0.0.1:2379) > find-milvus 1 candidates found: my-release Etcd(127.0.0.1:2379) > use my-release Milvus(my-release) >
Milvus 상태 확인
show
명령을 사용하여 Milvus 상태를 확인할 수 있습니다.
Milvus(my-release) > show -h
Usage:
show [command]
Available Commands:
alias list alias meta info
channel-watch display channel watching info from data coord meta store
checkpoint list checkpoint collection vchannels
collection-history display collection change history
collection-loaded display information of loaded collection from querycoord
collections list current available collection from RootCoord
config-etcd list configuations set by etcd source
configurations iterate all online components and inspect configuration
current-version
database display Database info from rootcoord meta
index
partition list partitions of provided collection
querycoord-channel display querynode information from querycoord cluster
querycoord-cluster display querynode information from querycoord cluster
querycoord-task display task information from querycoord
replica list current replica information from QueryCoord
segment display segment information from data coord meta store
segment-index display segment index information
segment-loaded display segment information from querycoordv1 meta
segment-loaded-grpc list segments loaded information
session list online milvus components
Flags:
-h, --help help for show
Use " show [command] --help" for more information about a command.
세션 나열
Milvus의 여러 컴포넌트와 연결된 세션을 나열합니다:
Milvus(by-dev) > show session
Session:datacoord, ServerID: 3, Version: 2.2.11, Address: 10.244.0.8:13333
Session:datanode, ServerID: 6, Version: 2.2.11, Address: 10.244.0.8:21124
Session:indexcoord, ServerID: 4, Version: 2.2.11, Address: 10.244.0.8:31000
Session:indexnode, ServerID: 5, Version: 2.2.11, Address: 10.244.0.8:21121
Session:proxy, ServerID: 8, Version: 2.2.11, Address: 10.244.0.8:19529
Session:querycoord, ServerID: 7, Version: 2.2.11, Address: 10.244.0.8:19531
Session:querynode, ServerID: 2, Version: 2.2.11, Address: 10.244.0.8:21123
Session:rootcoord, ServerID: 1, Version: 2.2.11, Address: 10.244.0.8:53100
명령 출력에서 show session
에 나열된 각 세션 항목은 현재 활성화되어 있고 etcd에 등록된 노드 또는 서비스에 해당합니다.
데이터베이스 및 컬렉션 확인
모든 데이터베이스 및 컬렉션을 나열할 수 있습니다.
데이터베이스 나열하기
명령 출력에서 모든 데이터베이스에 대한 정보를 찾을 수 있습니다.
Milvus(by-dev) > show database ============================= ID: 1 Name: default TenantID: State: DatabaseCreated --- Total Database(s): 1
컬렉션 목록
명령 출력에서 모든 컬렉션에 대한 자세한 정보를 찾을 수 있습니다.
Milvus(by-dev) > show collections ================================================================================ DBID: 1 Collection ID: 443407225551410746 Collection Name: medium_articles_2020 Collection State: CollectionCreated Create Time: 2023-08-08 09:27:08 Fields: - Field ID: 0 Field Name: RowID Field Type: Int64 - Field ID: 1 Field Name: Timestamp Field Type: Int64 - Field ID: 100 Field Name: id Field Type: Int64 - Primary Key: true, AutoID: false - Field ID: 101 Field Name: title Field Type: VarChar - Type Param max_length: 512 - Field ID: 102 Field Name: title_vector Field Type: FloatVector - Type Param dim: 768 - Field ID: 103 Field Name: link Field Type: VarChar - Type Param max_length: 512 - Field ID: 104 Field Name: reading_time Field Type: Int64 - Field ID: 105 Field Name: publication Field Type: VarChar - Type Param max_length: 512 - Field ID: 106 Field Name: claps Field Type: Int64 - Field ID: 107 Field Name: responses Field Type: Int64 Enable Dynamic Schema: false Consistency Level: Bounded Start position for channel by-dev-rootcoord-dml_0(by-dev-rootcoord-dml_0_443407225551410746v0): [1 0 28 175 133 76 39 6] --- Total collections: 1 Matched collections: 1 --- Total channel: 1 Healthy collections: 1 ================================================================================
특정 컬렉션 보기
특정 컬렉션의 ID를 지정하여 해당 컬렉션을 볼 수 있습니다.
Milvus(by-dev) > show collection-history --id 443407225551410746 ================================================================================ DBID: 1 Collection ID: 443407225551410746 Collection Name: medium_articles_2020 Collection State: CollectionCreated Create Time: 2023-08-08 09:27:08 Fields: - Field ID: 0 Field Name: RowID Field Type: Int64 - Field ID: 1 Field Name: Timestamp Field Type: Int64 - Field ID: 100 Field Name: id Field Type: Int64 - Primary Key: true, AutoID: false - Field ID: 101 Field Name: title Field Type: VarChar - Type Param max_length: 512 - Field ID: 102 Field Name: title_vector Field Type: FloatVector - Type Param dim: 768 - Field ID: 103 Field Name: link Field Type: VarChar - Type Param max_length: 512 - Field ID: 104 Field Name: reading_time Field Type: Int64 - Field ID: 105 Field Name: publication Field Type: VarChar - Type Param max_length: 512 - Field ID: 106 Field Name: claps Field Type: Int64 - Field ID: 107 Field Name: responses Field Type: Int64 Enable Dynamic Schema: false Consistency Level: Bounded Start position for channel by-dev-rootcoord-dml_0(by-dev-rootcoord-dml_0_443407225551410746v0): [1 0 28 175 133 76 39 6]
로드된 모든 컬렉션 보기
로드된 모든 컬렉션을 버드워처가 필터링하도록 할 수 있습니다.
Milvus(by-dev) > show collection-loaded Version: [>= 2.2.0] CollectionID: 443407225551410746 ReplicaNumber: 1 LoadStatus: Loaded --- Collections Loaded: 1
컬렉션의 모든 채널 체크포인트 목록 보기
특정 컬렉션의 모든 체크포인트를 나열하도록 Birdwatcher를 설정할 수 있습니다.
Milvus(by-dev) > show checkpoint --collection 443407225551410746 vchannel by-dev-rootcoord-dml_0_443407225551410746v0 seek to 2023-08-08 09:36:09.54 +0000 UTC, cp channel: by-dev-rootcoord-dml_0_443407225551410746v0, Source: Channel Checkpoint
인덱스 세부 정보 확인
다음 명령을 실행하여 모든 인덱스 파일을 자세히 나열합니다.
Milvus(by-dev) > show index
*************2.1.x***************
*************2.2.x***************
==================================================================
Index ID: 443407225551410801 Index Name: _default_idx_102 CollectionID:443407225551410746
Create Time: 2023-08-08 09:27:19.139 +0000 Deleted: false
Index Type: HNSW Metric Type: L2
Index Params:
==================================================================
파티션 목록
특정 컬렉션의 모든 파티션을 나열하려면 다음 명령을 실행하세요.
Milvus(by-dev) > show partition --collection 443407225551410746
Parition ID: 443407225551410747 Name: _default State: PartitionCreated
--- Total Database(s): 1
채널 상태 확인
채널 상태를 보려면 다음 명령을 실행하세요.
Milvus(by-dev) > show channel-watch
=============================
key: by-dev/meta/channelwatch/6/by-dev-rootcoord-dml_0_443407225551410746v0
Channel Name:by-dev-rootcoord-dml_0_443407225551410746v0 WatchState: WatchSuccess
Channel Watch start from: 2023-08-08 09:27:09 +0000, timeout at: 1970-01-01 00:00:00 +0000
Start Position ID: [1 0 28 175 133 76 39 6], time: 1970-01-01 00:00:00 +0000
Unflushed segments: []
Flushed segments: []
Dropped segments: []
--- Total Channels: 1
모든 복제본 및 세그먼트 목록
모든 복제본 목록
다음 명령을 실행하여 모든 복제본과 해당 컬렉션을 나열합니다.
Milvus(by-dev) > show replica ================================================================================ ReplicaID: 443407225685278721 CollectionID: 443407225551410746 version:>=2.2.0 All Nodes:[2]
모든 세그먼트 나열하기
다음 명령을 실행하여 모든 세그먼트와 해당 상태를 나열합니다.
SegmentID: 443407225551610865 State: Flushed, Row Count:5979 --- Growing: 0, Sealed: 0, Flushed: 1 --- Total Segments: 1, row count: 5979
로드된 모든 세그먼트를 자세히 나열하려면 다음 명령을 실행하세요. Milvus 2.1.x의 경우
show segment-loaded
을 대신 사용하세요.Milvus(by-dev) > show segment-loaded-grpc =========== ServerID 2 Channel by-dev-rootcoord-dml_0_443407225551410746v0, collection: 443407225551410746, version 1691486840680656937 Leader view for channel: by-dev-rootcoord-dml_0_443407225551410746v0 Growing segments number: 0 , ids: [] SegmentID: 443407225551610865 CollectionID: 443407225551410746 Channel: by-dev-rootcoord-dml_0_443407225551410746v0 Sealed segments number: 1
목록 구성
각 Milvus 구성 요소의 현재 구성을 Birdwatcher가 나열하도록 할 수 있습니다.
Milvus(by-dev) > show configurations
client nil Session:proxy, ServerID: 8, Version: 2.2.11, Address: 10.244.0.8:19529
Component rootcoord-1
rootcoord.importtaskexpiration: 900
rootcoord.enableactivestandby: false
rootcoord.importtaskretention: 86400
rootcoord.maxpartitionnum: 4096
rootcoord.dmlchannelnum: 16
rootcoord.minsegmentsizetoenableindex: 1024
rootcoord.port: 53100
rootcoord.address: localhost
rootcoord.maxdatabasenum: 64
Component datacoord-3
...
querynode.gracefulstoptimeout: 30
querynode.cache.enabled: true
querynode.cache.memorylimit: 2147483648
querynode.scheduler.maxreadconcurrentratio: 2
또는 각 Milvus 구성 요소를 방문하여 해당 구성을 찾을 수 있습니다. 다음은 ID가 7인 쿼리코드의 구성을 나열하는 방법을 보여줍니다.
Milvus(by-dev) > show session
Session:datacoord, ServerID: 3, Version: 2.2.11, Address: 10.244.0.8:13333
Session:datanode, ServerID: 6, Version: 2.2.11, Address: 10.244.0.8:21124
Session:indexcoord, ServerID: 4, Version: 2.2.11, Address: 10.244.0.8:31000
Session:indexnode, ServerID: 5, Version: 2.2.11, Address: 10.244.0.8:21121
Session:proxy, ServerID: 8, Version: 2.2.11, Address: 10.244.0.8:19529
Session:querycoord, ServerID: 7, Version: 2.2.11, Address: 10.244.0.8:19531
Session:querynode, ServerID: 2, Version: 2.2.11, Address: 10.244.0.8:21123
Session:rootcoord, ServerID: 1, Version: 2.2.11, Address: 10.244.0.8:53100
Milvus(by-dev) > visit querycoord 7
QueryCoord-7(10.244.0.8:19531) > configuration
Key: querycoord.enableactivestandby, Value: false
Key: querycoord.channeltasktimeout, Value: 60000
Key: querycoord.overloadedmemorythresholdpercentage, Value: 90
Key: querycoord.distpullinterval, Value: 500
Key: querycoord.checkinterval, Value: 10000
Key: querycoord.checkhandoffinterval, Value: 5000
Key: querycoord.taskexecutioncap, Value: 256
Key: querycoord.taskmergecap, Value: 8
Key: querycoord.autohandoff, Value: true
Key: querycoord.address, Value: localhost
Key: querycoord.port, Value: 19531
Key: querycoord.memoryusagemaxdifferencepercentage, Value: 30
Key: querycoord.refreshtargetsintervalseconds, Value: 300
Key: querycoord.balanceintervalseconds, Value: 60
Key: querycoord.loadtimeoutseconds, Value: 1800
Key: querycoord.globalrowcountfactor, Value: 0.1
Key: querycoord.scoreunbalancetolerationfactor, Value: 0.05
Key: querycoord.reverseunbalancetolerationfactor, Value: 1.3
Key: querycoord.balancer, Value: ScoreBasedBalancer
Key: querycoord.autobalance, Value: true
Key: querycoord.segmenttasktimeout, Value: 120000
백업 메트릭
버드워처가 모든 컴포넌트의 메트릭을 백업하도록 할 수 있습니다.
Milvus(my-release) > backup
Backing up ... 100%(2452/2451)
backup etcd for prefix done
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
http://10.244.0.10:9091/metrics
backup for prefix done, stored in file: bw_etcd_ALL.230810-075211.bak.gz
그런 다음 Birdwatcher를 시작한 디렉터리에서 파일을 확인할 수 있습니다.
프로브 컬렉션
지정된 기본 키 또는 모의 쿼리를 사용하여 로드된 컬렉션의 상태를 프로브하도록 Birdwatcher를 설정할 수 있습니다.
알려진 기본 키로 컬렉션 프로브
probe
명령에서 pk
플래그를 사용하여 기본 키를 지정하고 collection
플래그를 사용하여 컬렉션 ID를 지정해야 합니다.
Milvus(by-dev) > probe pk --pk 110 --collection 442844725212299747
PK 110 found on segment 442844725212299830
Field id, value: &{long_data:<data:110 > }
Field title, value: &{string_data:<data:"Human Resources Datafication" > }
Field title_vector, value: &{dim:768 float_vector:<data:0.022454707 data:0.007861045 data:0.0063843643 data:0.024065714 data:0.013782166 data:0.018483251 data:-0.026526336 ... data:-0.06579628 data:0.00033906146 data:0.030992996 data:-0.028134001 data:-0.01311325 data:0.012471594 > }
Field article_meta, value: &{json_data:<data:"{\"link\":\"https:\\/\\/towardsdatascience.com\\/human-resources-datafication-d44c8f7cb365\",\"reading_time\":6,\"publication\":\"Towards Data Science\",\"claps\":256,\"responses\":0}" > }
모의 쿼리로 모든 컬렉션 프로브하기
Birdwatcher가 모의 쿼리를 사용하여 모든 컬렉션을 프로브하도록 할 수도 있습니다.
Milvus(by-dev) > probe query
probing collection 442682158191982314
Found vector field vector(103) with dim[384], indexID: 442682158191990455
failed to generated mock request probing index type IVF_FLAT not supported yet
probing collection 442844725212086932
Found vector field title_vector(102) with dim[768], indexID: 442844725212086936
Shard my-release-rootcoord-dml_1_442844725212086932v0 leader[298] probe with search success.
probing collection 442844725212299747
Found vector field title_vector(102) with dim[768], indexID: 442844725212299751
Shard my-release-rootcoord-dml_4_442844725212299747v0 leader[298] probe with search success.
probing collection 443294505839900248
Found vector field vector(101) with dim[256], indexID: 443294505839900251
Shard my-release-rootcoord-dml_5_443294505839900248v0 leader[298] probe with search success.