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); }
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); }
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)); }