private static async Task SearchLog(LogSearchClient client, string compartmentId, string logGroupId, string logId)
        {
            DateTime          timeStart         = DateTime.Parse("12/09/2020 20:00:00");
            DateTime          timeEnd           = DateTime.Parse("12/09/2020 21:00:00");
            SearchLogsRequest searchLogsRequest = new SearchLogsRequest
            {
                SearchLogsDetails = new SearchLogsDetails
                {
                    SearchQuery = $"search \"{compartmentId}/{logGroupId}/{logId}\"",
                    TimeStart   = timeStart,
                    TimeEnd     = timeEnd
                },
                Limit = 5
            };

            logger.Info($"Searching log for entries between:{timeStart} to {timeEnd}");
            logger.Info("=============");
            SearchLogsResponse searchLogsResponse = await client.SearchLogs(searchLogsRequest);

            logger.Info($"Response OpcRequestId:{searchLogsResponse.OpcRequestId}");
            logger.Info($"Search Response count:{searchLogsResponse.SearchResponse.Results.Count}");
            foreach (var result in searchLogsResponse.SearchResponse.Results)
            {
                logger.Info($"data:{result.Data.ToString()}");
            }
        }
        /// <summary>
        /// Submit a query to search logs.
        ///
        /// </summary>
        /// <param name="request">The request object containing the details to send. Required.</param>
        /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param>
        /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param>
        /// <returns>A response object containing details about the completed operation</returns>
        /// <example>Click <a href="https://docs.cloud.oracle.com/en-us/iaas/tools/dot-net-examples/latest/loggingsearch/SearchLogs.cs.html">here</a> to see an example of how to use SearchLogs API.</example>
        public async Task <SearchLogsResponse> SearchLogs(SearchLogsRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default)
        {
            logger.Trace("Called searchLogs");
            Uri                uri            = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/search".Trim('/')));
            HttpMethod         method         = new HttpMethod("POST");
            HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request);

            requestMessage.Headers.Add("Accept", "application/json");
            GenericRetrier      retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration);
            HttpResponseMessage responseMessage;

            try
            {
                if (retryingClient != null)
                {
                    responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken).ConfigureAwait(false);
                }
                else
                {
                    responseMessage = await this.restClient.HttpSend(requestMessage).ConfigureAwait(false);
                }
                this.restClient.CheckHttpResponseMessage(requestMessage, responseMessage);

                return(Converter.FromHttpResponseMessage <SearchLogsResponse>(responseMessage));
            }
            catch (Exception e)
            {
                logger.Error($"SearchLogs failed with error: {e.Message}");
                throw;
            }
        }
示例#3
0
        public async Task <SearchLogsResponse> SearchLogs(SearchLogsRequest o)
        {
            var result = new SearchLogsResponse(o.RequestId);

            result.Logs.AddRange(await Server.SearchLogEntries(o.Application, o.From, o.To, o.SearchTerm));

            return(result);
        }
示例#4
0
        public void TestSearchLogs()
        {
            //添加数据点
            var client0 = new DefaultOneNETClient(url, appkey, "");
            var streams = new List <DataStreamSimple>
            {
                new DataStreamSimple
                {
                    ID         = "test log",
                    Datapoints = new List <DataPointSimple>
                    {
                        new DataPointSimple {
                            Value = 88.8, At = "2016-03-23T00:35:43"
                        }
                    }
                }
            };

            var data = new NewDataPointData {
                DataStreams = streams
            };
            var req0 = new NewDataPointRequest {
                DeviceID = 768719, Data = data
            };
            var rsp0 = client0.Execute(req0);

            Assert.IsFalse(rsp0.IsError);

            //查询日志
            var client = new DefaultOneNETClient(url, appkey, "");
            var req    = new SearchLogsRequest {
                DeviceID = "768719", Start = DateTime.Now.AddHours(-3)
            };
            var rsp = client.Execute(req);

            Assert.IsFalse(rsp.IsError);
            Assert.IsNotNull(rsp.Data);
            Console.WriteLine(rsp.Body);
        }
示例#5
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            SearchLogsRequest request;

            try
            {
                request = new SearchLogsRequest
                {
                    SearchLogsDetails = SearchLogsDetails,
                    OpcRequestId      = OpcRequestId,
                    Limit             = Limit,
                    Page = Page
                };

                response = client.SearchLogs(request).GetAwaiter().GetResult();
                WriteOutput(response, response.SearchResponse);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }