public async Task <StatsProgress> GetContainerStatsAsync(string ContainerID, ContainerStatsParameters containerStatsParameters)
        {
            CancellationTokenSource            cancellation = new CancellationTokenSource();
            IProgress <ContainerStatsResponse> progress1    = null;
            StatsProgress sp = new StatsProgress();

            client.Containers.GetContainerStatsAsync(ContainerID, new ContainerStatsParameters
            {
                Stream = false
            },
                                                     progress1, default).Wait();
            Console.WriteLine(Convert.ToString(progress1));

            Stream stream = await client.Containers.GetContainerStatsAsync(ContainerID, new ContainerStatsParameters
            {
                Stream = false
            },
                                                                           default);

            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);
            string       text   = reader.ReadToEnd();

            Console.WriteLine(text);
            Console.WriteLine(Convert.ToString(progress1));

            return(sp);
        }
Exemplo n.º 2
0
 public Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken, IProgress <JSONMessage> progress)
 {
     return(StreamUtil.MonitorStreamForMessagesAsync(
                GetContainerStatsAsync(id, parameters, cancellationToken),
                this._client,
                cancellationToken,
                progress));
 }
        /// <summary>
        /// Get the performance stats for a container
        /// </summary>
        /// <param name="client">Docker environment instance</param>
        /// <param name="containerID">Name of the container</param>
        /// <returns></returns>
        public async Task GetContainerStats(string containerID)
        {
            //containerID = containerID.Trim('/');
            Console.WriteLine("Getting performance data for containerID {0}:", containerID);
            //Setting to stream to false returns only one data point. Setting this to yes returns data at continuous intervals.
            var statsParameters = new ContainerStatsParameters {
                Stream = true
            };

            IProgress <ContainerStatsResponse> progress =
                new Progress <ContainerStatsResponse>(GetPerformanceStats);

            await client.Containers.GetContainerStatsAsync(containerID, statsParameters, progress, CancellationToken.None);
        }
Exemplo n.º 4
0
        public Task <Stream> GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            IQueryString queryParameters = new QueryString <ContainerStatsParameters>(parameters);

            return(this._client.MakeRequestForStreamAsync(this._client.NoErrorHandlers, HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, cancellationToken));
        }