internal static QueryBody CreateQueryBody(string query, DateTimeRange timeRange, LogsQueryOptions options, out string prefer)
        {
            var queryBody = new QueryBody(query);

            if (timeRange != DateTimeRange.All)
            {
                queryBody.Timespan = timeRange.ToString();
            }

            prefer = null;

            if (options?.ServerTimeout is TimeSpan timeout)
            {
                prefer = "wait=" + (int)timeout.TotalSeconds;
            }

            if (options?.IncludeStatistics == true)
            {
                prefer += " include-statistics=true";
            }

            if (options != null)
            {
                queryBody.Workspaces = options.AdditionalWorkspaces;
            }

            return(queryBody);
        }
示例#2
0
        internal static QueryBody CreateQueryBody(string query, DateTimeRange timeRange, LogsQueryOptions options, out string prefer)
        {
            var queryBody = new QueryBody(query);

            if (timeRange != DateTimeRange.All)
            {
                queryBody.Timespan = timeRange.ToString();
            }

            if (options != null)
            {
                queryBody.Workspaces = options.AdditionalWorkspaces;
            }

            prefer = null;

            StringBuilder preferBuilder = null;

            if (options?.ServerTimeout is TimeSpan timeout)
            {
                preferBuilder ??= new();
                preferBuilder.Append("wait=");
                preferBuilder.Append((int)timeout.TotalSeconds);
            }

            if (options?.IncludeStatistics == true)
            {
                if (preferBuilder == null)
                {
                    preferBuilder = new();
                }
                else
                {
                    preferBuilder.Append(',');
                }

                preferBuilder.Append("include-statistics=true");
            }

            if (options?.IncludeVisualization == true)
            {
                if (preferBuilder == null)
                {
                    preferBuilder = new();
                }
                else
                {
                    preferBuilder.Append(',');
                }

                preferBuilder.Append("include-render=true");
            }

            prefer = preferBuilder?.ToString();

            return(queryBody);
        }