github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/m3em/README.md (about) 1 m3em 2 ============================================================================================== 3 4 `m3em` (pronounced `meme`) is an acronym for M3 Environment Manager. [ccm](https://github.com/pcmanus/ccm)`:C* :: m3em:m3db`. Unlike `ccm`, `m3em` permits remote host operations. 5 6 The goal of `m3em` is to make it easy to create, manage and destroy services across hosts. It is meant for testing clustered services like [m3db](https://github.com/m3db/m3) and [m3aggregator](https://github.com/m3db/m3) . 7 8 ## Components 9 There are two primary components in m3em: 10 11 (1) API constructs encapsulating placement interactions (see `cluster` package), along with remote process orchestration (see `node` package). 12 13 (2) `m3em_agent`: process running on remote hosts. It's responsible for process lifecycle, heartbeating back to the coordinating host. 14 15 ## Usage Example 16 - For API usage, refer `tools/dtest` in [M3DB](https://github.com/m3db/m3) 17 18 ### m3em_agent 19 20 ``` 21 $ make m3em_agent 22 $ scp ./out/m3em_agent <remote-host>:<remote-path> 23 $ ssh <remote-host> 24 $ cat >m3em.agent.yaml <<EOF 25 server: 26 listenAddress: "0.0.0.0:14541" 27 debugAddress: "0.0.0.0:24541" 28 29 metrics: 30 sampleRate: 0.02 31 m3: 32 hostPort: "127.0.0.1:9052" 33 service: "m3em" 34 includeHost: true 35 env: "development" 36 37 agent: 38 workingDir: /var/m3em-agent 39 startupCmds: 40 - path: /bin/echo 41 args: 42 - "sample startup command" 43 releaseCmds: 44 - path: /bin/echo 45 args: 46 - "sample release command" 47 testEnvVars: 48 UBER_DATACENTER: sjc1 49 EOF 50 $ /remote-path/m3em_agent -f m3em.agent.yaml 51 ```