APIの使用
Oracle Cloud Infrastructure Loggingの検索APIおよびSDKの例の詳細。
APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。
ログの検索には、次の操作を使用します:
保存済検索には次を使用します:
SearchLogs SDKの例
次のSearchLogs SDKの例を参照してください:
- Java
- Python
- Go
- TypeScript
- .NET C#
- Ruby
Javaの例:
/** To make this code sample work in your Oracle Cloud tenancy,
please replace the values for the following placeholders:
<compartment_OCID> - the ocid of your compartment where the logs are stored;
<log_group_OCID> - the ocid of your log group under the above compartment;
<log_OCID> - the ocid of your log object under the above log group.
*/
import com.oracle.bmc.ConfigFileReader;
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
import com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider;
import com.oracle.bmc.loggingsearch.LogSearchClient;
import com.oracle.bmc.loggingsearch.model.*;
import com.oracle.bmc.loggingsearch.requests.*;
import com.oracle.bmc.loggingsearch.responses.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Date;
import java.util.Arrays;
public class SearchLogsExample {
public static void main(String[] args) throws Exception {
/**
* Create a default authentication provider that uses the DEFAULT
* profile in the configuration file.
* Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
*/
final ConfigFileReader.ConfigFile configFile = ConfigFileReader.parseDefault();
final AuthenticationDetailsProvider provider = new ConfigFileAuthenticationDetailsProvider(configFile);
/* Create a service client */
LogSearchClient client = new LogSearchClient(provider);
/* Create a request and dependent object(s). */
SearchLogsDetails searchLogsDetails = SearchLogsDetails.builder()
.timeStart(new Date("Mon May 10 01:02:29 UTC 2021"))
.timeEnd(new Date("Mon May 10 02:02:29 UTC 2021"))
.searchQuery("search \"<compartment_OCID>/<log_group_OCID>/<log_OCID>\" | where level = 'INFO'")
.isReturnFieldInfo(false).build();
SearchLogsRequest searchLogsRequest = SearchLogsRequest.builder()
.searchLogsDetails(searchLogsDetails)
.opcRequestId("RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId")
.limit(10).build();
/* Send request to the Client */
SearchLogsResponse response = client.searchLogs(searchLogsRequest);
System.out.println("opc-request-id: " + response.getOpcRequestId());
System.out.println("Got results: " + response.getSearchResponse().getResults().stream().count());
}
}
Pythonの例:
# To make this code sample work in your Oracle Cloud tenancy,
# please replace the values for the following placeholders:
# <compartment_OCID> - the ocid of your compartment where the logs are stored;
# <log_group_OCID> - the ocid of your log group under the above compartment;
# <log_OCID> - the ocid of your log object under the above log group.
from datetime import datetime
import oci
# Create a default config using DEFAULT profile in default location
# Refer to
# https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File
# for more info
config = oci.config.from_file()
# Initialize service client with default config file
loggingsearch_client = oci.loggingsearch.LogSearchClient(config)
# Send the request to service, some parameters are not required, see API
# doc for more info
search_logs_response = loggingsearch_client.search_logs(
search_logs_details=oci.loggingsearch.models.SearchLogsDetails(
time_start=datetime.strptime(
"2021-05-10T01:02:29.600Z",
"%Y-%m-%dT%H:%M:%S.%fZ"),
time_end=datetime.strptime(
"2021-05-10T02:02:29.600Z",
"%Y-%m-%dT%H:%M:%S.%fZ"),
search_query="search \"<compartment_OCID>/<log_group_OCID>/<log_OCID>\" | where level = 'INFO'",
is_return_field_info=False,
),
opc_request_id="RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId",
limit=10,
)
# Get the data from response
print(search_logs_response.data)
Goの例:
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for the following placeholders:
// <compartment_OCID> - the ocid of your compartment where the logs are stored;
// <log_group_OCID> - the ocid of your log group under the above compartment;
// <log_OCID> - the ocid of your log object under the above log group.
package main
import (
"context"
"fmt"
"time"
"github.com/oracle/oci-go-sdk/common"
"github.com/oracle/oci-go-sdk/example/helpers"
"github.com/oracle/oci-go-sdk/loggingsearch"
)
func main() {
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
client, err := loggingsearch.NewLogSearchClientWithConfigurationProvider(common.DefaultConfigProvider())
helpers.FatalIfError(err)
// Create a request and dependent object(s).
start, _ := time.Parse(time.RFC3339, "2021-05-10T01:02:29.600Z")
end, _ := time.Parse(time.RFC3339, "2021-05-10T02:02:29.600Z")
req := loggingsearch.SearchLogsRequest{OpcRequestId: common.String("RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId"),
SearchLogsDetails: loggingsearch.SearchLogsDetails{SearchQuery: common.String(`search "<compartment_OCID>/<log_group_OCID>/<log_OCID>" | where level = 'INFO'`),
TimeStart: &common.SDKTime{Time: start},
TimeEnd: &common.SDKTime{Time: end},
IsReturnFieldInfo: common.Bool(false)},
Limit: common.Int(10)}
// Send the request using the service client
resp, err := client.SearchLogs(context.Background(), req)
helpers.FatalIfError(err)
// Retrieve value from the response.
fmt.Println(resp)
}
TypeScript例:
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for the following placeholders:
// <compartment_OCID> - the ocid of your compartment where the logs are stored;
// <log_group_OCID> - the ocid of your log group under the above compartment;
// <log_OCID> - the ocid of your log object under the above log group.
import * as loggingsearch from "oci-loggingsearch";
import common = require("oci-common");
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider();
(async () => {
try {
// Create a service client
const client = new loggingsearch.LogSearchClient({ authenticationDetailsProvider: provider });
// Create a request and dependent object(s).
const searchLogsDetails = {
timeStart: new Date("Mon May 10 01:02:29 UTC 2021"),
timeEnd: new Date("Mon May 10 02:02:29 UTC 2021"),
searchQuery: "search \"<compartment_OCID>/<log_group_OCID>/<log_OCID>\" | where level = 'INFO'",
isReturnFieldInfo: false
};
const searchLogsRequest: loggingsearch.requests.SearchLogsRequest = {
searchLogsDetails: searchLogsDetails,
opcRequestId: "RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId",
limit: 10
};
// Send request to the Client.
const searchLogsResponse = await client.searchLogs(searchLogsRequest);
console.log("opc-request-id: " + searchLogsResponse.opcRequestId);
console.log("Got results: " + searchLogsResponse.searchResponse.results.length);
} catch (error) {
console.log("searchLogs Failed with error " + error);
}
})();
.NET C#の例:
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for the following placeholders:
// <compartment_OCID> - the ocid of your compartment where the logs are stored;
// <log_group_OCID> - the ocid of your log group under the above compartment;
// <log_OCID> - the ocid of your log object under the above log group.
using System;
using System.Threading.Tasks;
using Oci.LoggingsearchService;
using Oci.Common;
using Oci.Common.Auth;
namespace Oci.Sdk.DotNet.Example.Loggingsearch
{
public class SearchLogsExample
{
public static async Task Main()
{
// Create a request and dependent object(s).
var searchLogsDetails = new Oci.LoggingsearchService.Models.SearchLogsDetails
{
TimeStart = DateTime.Parse("05/10/2021 01:02:29"),
TimeEnd = DateTime.Parse("05/10/2021 02:02:29"),
SearchQuery = "search \"<compartment_OCID>/<log_group_OCID>/<log_OCID>\" | where level = 'INFO'",
IsReturnFieldInfo = false
};
var searchLogsRequest = new Oci.LoggingsearchService.Requests.SearchLogsRequest
{
SearchLogsDetails = searchLogsDetails,
OpcRequestId = "RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId",
Limit = 10
};
// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.
var provider = new ConfigFileAuthenticationDetailsProvider("DEFAULT");
try
{
// Create a service client and send the request.
using (var client = new LogSearchClient(provider, new ClientConfiguration()))
{
var response = await client.SearchLogs(searchLogsRequest);
// Retrieve value from the response.
var resultsValue = response.SearchResponse.Results;
Console.WriteLine("opc-request-id: " + response.OpcRequestId);
Console.WriteLine("Got results: " + response.SearchResponse.Results.Count);
}
}
catch (Exception e)
{
Console.WriteLine($"SearchLogs Failed with {e.Message}");
throw e;
}
}
}
}
Rubyの例:
# To make this code sample work in your Oracle Cloud tenancy,
# please replace the values for the following placeholders:
# <compartment_OCID> - the ocid of your compartment where the logs are stored;
# <log_group_OCID> - the ocid of your log group under the above compartment;
# <log_OCID> - the ocid of your log object under the above log group.
require 'oci'
require 'date'
# Create a default config using DEFAULT profile in default location
# Refer to https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File for more info
config = OCI::ConfigFileLoader.load_config
# Initialize service client with default config file
loggingsearch_client = OCI::Loggingsearch::LogSearchClient.new(config: config)
# Send the request to service, some parameters are not required, see API doc for more info
search_logs_response =
loggingsearch_client.search_logs(
OCI::Loggingsearch::Models::SearchLogsDetails.new(
time_start:
DateTime.strptime('2021-05-10T01:02:29Z', '%Y-%m-%dT%H:%M:%SZ'),
time_end:
DateTime.strptime('2021-05-10T02:02:29Z', '%Y-%m-%dT%H:%M:%SZ'),
search_query: 'search "<compartment_OCID>/<log_group_OCID>/<log_OCID>" | where level = \'INFO\'',
is_return_field_info: false
),
opc_request_id: 'RIJJ87OXLQBMPBRN6ZWO/OpcRequestIdExample/UniqueRequestId',
limit: 10
)
# Get the data from response
puts "#{search_logs_response.data}"