1
0
mirror of https://github.com/docker/compose-cli.git synced 2026-10-25 06:19:18 +03:00

147 Commits

Author SHA1 Message Date
Milas Bowman
784377898f metrics: track and report non-aggregated events
Currently, "usage" reports are sent, which are aggregated.
Add "event" variant, which won't be aggregated.

For compatibility, the "usage" events remain and nothing has
changed in terms of how they parse the command args, for example.
This will ensure continued functioning of anything that relies
on these metrics.

For the "event" variants, the CLI parsing is slightly different
in an attempt to improve data analysis capabilities while still
being respectful of user privacy (i.e. only known values of Docker
CLI commands/flags are ever recorded). Additionally, execution
duration information is now reported with these events.

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-02-08 14:17:04 -05:00
Milas Bowman
e7d8d05d99 metrics: initial logic for command execution duration
Add a timer around command invocations to be reported with metrics.
This isn't actually sent anywhere currently, as it's meant for
evented data which is forthcoming. (We could report it with the
current events, but it's not clear that there's any value in doing
so.)

The signature for `Track()` has been changed to take an object with
all the fields. This is both for sanity to keep the method from
getting ridiculously long, and to make it easier to unify the usage
(heartbeat) and event code paths by ensuring we have all the data
for both.

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-02-06 17:08:27 -05:00
Milas Bowman
16482c0611 metrics: move helper code from Compose
Compose doesn't actually currently use this code, it's only used
here. Moving it inline so that we can drop it from Compose in the
future or make changes as needed without worrying about this as a
dependency.

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-02-06 16:50:29 -05:00
Milas Bowman
3f6822e196 metrics: add debug implementation
Refactor the metrics client slightly to add the concept of a
"reporter" that actually sends the metrics.

The primary implementation is HTTP-based as before, but a key
difference now is that there's another variant that writes to
a file for simplified debugging. This is activated by setting
the `DOCKER_METRICS_DEBUG_LOG` environment variable to a file
path to write events to as JSON lines.

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-02-02 09:20:32 -05:00
CrazyMax
668b262605 build metrics compatibility for next 22.06
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-27 17:03:03 +02:00
Mathieu Champlon
48ad1486ac Revert "signals"
Signed-off-by: Mathieu Champlon <mathieu.champlon@docker.com>
2021-11-04 17:14:28 +01:00
Ulysses Souza
5aa293cc04 Fix plugin command delegation
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-11-03 15:22:52 +01:00
Lorena Rangel
3ff346838a point to correct backend when switching context
Signed-off-by: Lorena Rangel <lorena.rangel@docker.com>
2021-10-18 14:15:04 +02:00
Mathieu Champlon
8b76602054 Merge pull request #1879 from ndeloof/signals
signals
2021-09-21 12:09:52 +02:00
Ulysses Souza
25b335924c Store context type in the context for reusing
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-09-17 19:26:24 +02:00
Ulysses Souza
fa7e0632ba Add checks for unsupported flags
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-09-17 10:19:02 +02:00
Nicolas De Loof
07f6f804a9 use docker/compose/v2
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-17 10:19:02 +02:00
Nicolas De Loof
fcb91096b8 remove all references to cli from compose.v2 cmd package
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-08-31 15:41:20 +02:00
Nicolas De Loof
9215d68428 signals
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-07-13 10:02:48 +02:00
Ulysses Souza
37961c51ca Add completion to "compose ps"
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-07-12 14:33:37 -03:00
Nicolas De Loof
49e7f2d45d Move compose v2 implementation under pkg/compose with dependencies
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-15 15:52:48 +02:00
Nicolas De Loof
e2ea24ceb7 move compose-plugin commands under /cmd
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-15 15:52:48 +02:00
Nicolas De Loof
d90495e1cd move compose API into pkg/api
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-15 15:52:48 +02:00
Nicolas De Loof
21e2f5c062 use interceptor to implement ACI-specific flags
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-05-19 16:00:26 +02:00
Nicolas De Loof
9123c75142 On default context, "compose" is implemented by CLI Plugin
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-23 12:06:14 +02:00
Nicolas De Loof
db38d1244c Retrieve compose failure category by exit code
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-22 18:01:28 +02:00
Nicolas De Loof
d8aa00a766 wrap compose cobra command to set exitcode according to metrics status
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-22 17:51:29 +02:00
Guillaume Tardif
1dc97e8c4b Compose as a cli plugin
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-22 17:51:29 +02:00
Nicolas De Loof
0bdad7e551 pass compose.Service to cobra commands, dependency-injection style
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-22 17:50:56 +02:00
Guillaume Tardif
073d8e5545 Categorize failure metrics, set specific metrics for compose file parse error, file not found, cmdline syntax errors, build error, pull error.
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-04-09 17:20:29 +02:00
Guillaume Tardif
86f5e311d7 Replace custom error type for exit code with existing one from docker/cli.
Will also help to move towards CLI plugin.

Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-04-07 15:48:37 +02:00
Nicolas De Loof
48402585fd replace passing parameters by context with singletons
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-03-12 15:28:17 +01:00
aiordache
f1f4ca4833 Check -H flags and DOCKER_HOST/DOCKER_CONTEXT vars when determining current context
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-08 19:28:16 +01:00
aiordache
fef479ad1f update test
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-05 16:30:52 +01:00
aiordache
6458b97089 test fix
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-05 14:48:18 +01:00
aiordache
f0fd18eec9 set current context to default when -H flag is set
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-05 14:34:49 +01:00
aiordache
6f1d88e3bc Fix test and load dockerconfig in the backend
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-05 14:34:49 +01:00
aiordache
d26783c322 Add connection flags to root command
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-03-05 14:34:49 +01:00
Nicolas De Loof
58e495c60b only display experimental warning on command error
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-02-23 09:57:09 +01:00
aiordache
afac025a49 Add compose exec command
Signed-off-by: aiordache <anca.iordache@docker.com>
2021-02-16 10:56:00 +01:00
Nicolas De Loof
d9fe745cc0 avoid use of channels in API for gRPC compatibility
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-02-11 09:34:08 +01:00
Nicolas De Loof
9f80214dc2 Make -l -D -H non-persistent to avoid conflict with subcommands
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-02-04 17:13:44 +01:00
Nicolas De Loof
4cbb33e20d Add support for --log-level
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-02-03 11:49:21 +01:00
Guillaume Tardif
aca816d5d6 Remove example backend.
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-19 11:29:48 +01:00
Guillaume Tardif
2a8c24e4ff Move config => api/config
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-15 16:55:10 +01:00
Guillaume Tardif
f1ac6d4fdc Move errdefs => api/errdefs
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-15 16:54:18 +01:00
Guillaume Tardif
0ea97920c1 Move Context & context/store => api/context & api/context/store
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-15 16:31:59 +01:00
Guillaume Tardif
65f53dff43 move metrics => cli
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-15 15:26:35 +01:00
Guillaume Tardif
1939047fe6 Add backend-metadata command (hidden) for CLI backend
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-05 16:36:51 +01:00
Nicolas De Loof
7a2e041524 Parse --version and forward to docker/cli
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-12-14 15:16:22 +01:00
Guillaume Tardif
b604ba6246 Fix 2 corner cases with PATH settings
* windows PATH should use windows separator (;)
* do not add separator if initial PATH is empty (was creating PATH=:/path)

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-29 15:35:22 +01:00
Guillaume Tardif
5e809acd87 Use OS-dependant pathListSeparator, when appending to PATH
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-29 15:09:38 +01:00
Nicolas De Loof
de96a0c1d0 CLI command to manage ECS volumes
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-10-20 16:52:50 +02:00
Guillaume Tardif
a5e34323e2 Add docker prune command and ACI implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-14 17:48:11 +02:00
Ulysses Souza
10632b008b Add version to UserAgent on ACI
This also refactors the Version insertion to make it global

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-12 09:15:32 +02:00