github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/cmd/tools/m3ctl/README.md (about)

     1  # M3DB CLI Tool
     2  
     3  This is a CLI tool to do some things that may be desirable for
     4  cluster introspection, or for operational purposes.
     5  
     6  Where configuration data is required its provided via YAML.
     7  
     8  You can:
     9  
    10  * create a database per the simplified database create API
    11  * list namespaces
    12  * delete namespaces
    13  * list placements
    14  * delete placements
    15  * list topics
    16  * delete topics
    17  * add nodes
    18  * remove nodes
    19  
    20  NOTE: This tool can delete namespaces and placements.  It can be
    21  quite hazardous if used without adequate understanding of your m3db
    22  cluster's topology, or without a decent understanding of how m3db
    23  works.
    24  
    25  ## Examples
    26  
    27  ```
    28  # show help
    29  m3ctl -h
    30  # create a database
    31  m3ctl apply -f ./database/examples/dbcreate.yaml
    32  # list namespaces
    33  m3ctl get ns
    34  # delete a namespace
    35  m3ctl delete ns -id default
    36  # list service placements (m3db/m3coordinator/m3aggregator)
    37  m3ctl get pl <service>
    38  # list topics
    39  m3ctl get topic --header 'Cluster-Environment-Name: namespace/m3db-cluster-name, Topic-Name: aggregator_ingest'
    40  # point to some remote and list namespaces
    41  m3ctl -endpoint http://localhost:7201 get ns
    42  # check the namespaces in a kubernetes cluster
    43  # first setup a tunnel via kubectl port-forward ... 7201
    44  m3ctl -endpoint http://localhost:7201 get ns
    45  # list the ids of the m3db placements
    46  m3ctl -endpoint http://localhost:7201 get pl m3db | jq .placement.instances[].id
    47  ```
    48  
    49  Some example yaml files for the "apply" subcommand are provided in the yaml/examples directory.
    50  Here's one to initialize a topology:
    51  
    52  ```yaml
    53  ---
    54  operation: init
    55  service: m3db
    56  num_shards: 64
    57  replication_factor: 1
    58  instances:
    59    - id: nodeid1
    60      isolation_group: isogroup1
    61      zone: etcd1
    62      weight: 100
    63      endpoint: node1:9000
    64      hostname: node1
    65      port: 9000
    66    - id: nodeid2
    67      isolation_group: isogroup2
    68      zone: etcd1
    69      weight: 100
    70      endpoint: node2:9000
    71      hostname: node2
    72      port: 9000
    73    - id: nodeid3
    74      isolation_group: isogroup3
    75      zone: etcd1
    76      weight: 100
    77      endpoint: node3:9000
    78      hostname: node3
    79      port: 9000
    80  ```
    81  
    82  See the examples directories below.
    83  
    84  # References
    85  
    86   * [Operational guide](https://docs.m3db.io/operational_guide)
    87   * [API docs](https://www.m3db.io/openapi/)