public static void MonitoringResourceExample(ClientConfig config) { // create client var identityClient = new IdentityClient(config); var computeClient = new ComputeClient(config); var monitoringClient = new MonitoringClient(config); var listCompartmenRequest = new ListCompartmentRequest() { CompartmentId = identityClient.Config.TenancyId, CompartmentIdInSubtree = true, AccessLevel = ListCompartmentRequest.AccessLevels.ACCESSIBLE, Limit = 10 }; // get compartment var listCompartment = identityClient.ListCompartment(listCompartmenRequest).Items; Console.WriteLine("* List Instance Metrics------------------------"); foreach (var compartment in listCompartment) { if (!compartment.IsAccessible.HasValue || !compartment.IsAccessible.Value) { continue; } var listInstanceRequest = new ListInstancesRequest() { CompartmentId = compartment.Id, Limit = 50, LifecycleState = ListInstancesRequest.LifecycleStates.RUNNING, SortOrder = SortOrder.ASC }; var now = DateTime.UtcNow.AddHours(-2); var endTime = DateTime.UtcNow; // get instance var listInstance = computeClient.ListInstances(listInstanceRequest).Items; foreach (var instance in listInstance) { Console.WriteLine($" |-{instance.DisplayName}------------"); // get all computeagent var listMetricsRequest = new ListMetricsRequest() { CompartmentId = compartment.Id, CompartmentIdInSubtree = compartment.CompartmentId == config.TenancyId, ListMetricsDetails = new ListMetricsDetails() { Namespace = "oci_computeagent", DimensionFilters = new DimensionFilter() { ResourceId = instance.Id } } }; // get Metrics try { var listMetrics = monitoringClient.ListMetrics(listMetricsRequest).Items; foreach (var metrics in listMetrics) { Console.WriteLine($"\t| Mertics: {metrics.Name}"); Console.WriteLine($"\t| NameSpace: {metrics.Namespace}"); // metric dimensions //Console.WriteLine($"\t| {metrics.Dimensions}".Replace("\n", "")); var summarizeMetricsDataRequest = new SummarizeMetricsDataRequest() { CompartmentId = compartment.Id, CompartmentIdInSubtree = compartment.CompartmentId == config.TenancyId, SummarizeMetricsDataDetails = new SummarizeMetricsDataDetails() { Namespace = metrics.Namespace, Query = metrics.Name + "[1h]{resourceId = \"" + instance.Id + "\"}.mean()", StartTime = now.ToString("yyyy-MM-ddThh:MM:ssZ"), EndTime = endTime.ToString("yyyy-MM-ddThh:MM:ssZ") } }; var SummarizeMetricsDatas = monitoringClient.SummarizeMetricsData(summarizeMetricsDataRequest).Items; foreach (var summaryData in SummarizeMetricsDatas) { foreach (var aggregatedDatapoint in summaryData.AggregatedDatapoints) { Console.WriteLine("\t| {"); Console.WriteLine($"\t| \tTimeStamp: {aggregatedDatapoint.Timestamp}"); Console.WriteLine($"\t| \tValue: {aggregatedDatapoint.Value}"); Console.WriteLine("\t| }"); } } } } catch (WebException we) { Console.WriteLine($"notfund:{we.Message}"); } } } Console.WriteLine("* List compartment Alarms------------------------"); foreach (var compartment in listCompartment) { Console.WriteLine(" Alarm status------------------------"); var listAlarmsStatusRequest = new ListAlarmsStatusRequest() { CompartmentId = compartment.Id, Limit = 1000 }; var alarmStatus = monitoringClient.ListAlarmsStatus(listAlarmsStatusRequest); if (alarmStatus.Items.Count > 0) { Console.WriteLine($" |-{compartment.Name}------------"); foreach (var alarm in alarmStatus.Items) { Console.WriteLine($"\tid:{alarm.Id}"); Console.WriteLine($"\tname:{alarm.DisplayName}"); Console.WriteLine($"\tstatus:{alarm.Status}"); Console.WriteLine($"\tseverity:{alarm.Severity}"); } } var listAlarmsRequest = new ListAlarmsRequest() { CompartmentId = compartment.Id, Limit = 10 }; Console.WriteLine(" Alarm logs------------------------"); var listAlarms = monitoringClient.ListAlarms(listAlarmsRequest); if (listAlarms.Items.Count > 0) { Console.WriteLine($" |-{compartment.Name}------------"); foreach (var alarm in listAlarms.Items) { Console.WriteLine($"\tid:{alarm.Id}"); Console.WriteLine($"\tname:{alarm.DisplayName}"); Console.WriteLine($"\tdestinations:{alarm.Destinations}"); Console.WriteLine($"\tenable:{alarm.IsEnabled}"); Console.WriteLine($"\tstate:{alarm.LifecycleState}"); var getAlarmHistoryRequest = new GetAlarmHistoryRequest() { AlarmId = alarm.Id, TimestampGreaterThanOrEqualTo = DateTime.UtcNow.ToString() }; var history = monitoringClient.GetAlarmHistory(getAlarmHistoryRequest); foreach (var his in history.AlarmHistoryCollection.Entries) { Console.WriteLine($"\t\t|-summary:{his.Summary}"); Console.WriteLine($"\t\t| timestamp:{his.Timestamp}"); Console.WriteLine($"\t\t| timestampTriggered:{his.TimestampTriggered}"); } } } // Transactions Per Second (TPS) per-tenancy limit for this operation: 1. System.Threading.Thread.Sleep(1000); } }
public static void InstanceConsoleDisplay(ClientConfig config) { // create client ComputeClient computeClient = new ComputeClient(config) { Region = Regions.US_ASHBURN_1 }; BlockstorageClient blockstorageClient = new BlockstorageClient(config) { Region = Regions.US_ASHBURN_1 }; VirtualNetworkClient networkingClient = new VirtualNetworkClient(config) { Region = Regions.US_ASHBURN_1 }; // get instanse list(RUNNING only) Console.WriteLine("* List Instance------------------------"); var listInstanceRequest = new ListInstancesRequest() { // target compartment is root compartment(tenancy) CompartmentId = computeClient.Config.TenancyId, Limit = 50, LifecycleState = ListInstancesRequest.LifecycleStates.RUNNING, SortOrder = SortOrder.ASC, SortBy = ListInstancesRequest.SortByParam.TIMECREATED }; // get instance var listInstance = computeClient.ListInstances(listInstanceRequest); listInstance.Items.ForEach(instance => { GetInstanceRequest getInstanceRequest = new GetInstanceRequest() { InstanceId = instance.Id }; var insDetail = computeClient.GetInstance(getInstanceRequest).Instance; Console.WriteLine(" |-" + insDetail.DisplayName); Console.WriteLine(" | id: " + insDetail.Id); Console.WriteLine(" | AD: " + insDetail.AvailabilityDomain); Console.WriteLine(" | shape: " + insDetail.Shape); Console.WriteLine(" | state: " + insDetail.LifecycleState); Console.WriteLine(" |\t|- * SourceDetails"); Console.WriteLine(" |\t|\t type: " + insDetail.SourceDetails.SourceType); if ("image".Equals(insDetail.SourceDetails.SourceType)) { Console.WriteLine(" |\t|\t id: " + insDetail.SourceDetails.ImageId); // get sourceDetail machine image GetImageRequest getImageRequest = new GetImageRequest() { ImageId = insDetail.SourceDetails.ImageId }; var machineimage = computeClient.GetImage(getImageRequest); Console.WriteLine(" |\t|\t name: " + machineimage.Image.DisplayName); Console.WriteLine(" |\t|\t sizeInMBs: " + machineimage.Image.SizeInMBs); } else { Console.WriteLine(" |\t|\t id: " + insDetail.SourceDetails.BootVolumeId); // get sourceDetail bootVolume GetBootVolumeRequest getBootVolumeRequest = new GetBootVolumeRequest() { BootVolumeId = insDetail.SourceDetails.BootVolumeId }; var bootvol = blockstorageClient.GetBootVolume(getBootVolumeRequest); Console.WriteLine(" |\t|\t name: " + bootvol.BootVolume.DisplayName); Console.WriteLine(" |\t|\t sizeInGBs: " + bootvol.BootVolume.SizeInGBs.Value); } // get instance atattch bootvolumes var bootvolumeAtattch = new ListBootVolumeAttachmentsRequest() { InstanceId = instance.Id, CompartmentId = instance.CompartmentId, AvailabilityDomain = instance.AvailabilityDomain, Limit = 50 }; var listBvAtattch = computeClient.ListBootVolumeAttachments(bootvolumeAtattch); listBvAtattch.Items.ForEach(bootVolAtt => { Console.WriteLine(" |\t|- * BootVolume"); // get bootvolume var getBootVolumeRequest = new GetBootVolumeRequest() { BootVolumeId = bootVolAtt.BootVolumeId }; var bv = blockstorageClient.GetBootVolume(getBootVolumeRequest); Console.WriteLine(" |\t|\t name:" + bv.BootVolume.DisplayName); Console.WriteLine(" |\t|\t id:" + bv.BootVolume.Id); Console.WriteLine(" |\t|\t state:" + bv.BootVolume.LifecycleState); Console.WriteLine(" |\t|\t sizeInGBs:" + bv.BootVolume.SizeInGBs.Value); }); // get instance atattch vnics var vnicAtattch = new ListVnicAttachmentsRequest() { InstanceId = instance.Id, CompartmentId = instance.CompartmentId, AvailabilityDomain = instance.AvailabilityDomain, Limit = 50 }; var listVnicAtattch = computeClient.ListVnicAttachments(vnicAtattch); listVnicAtattch.Items.ForEach(vnicA => { Console.WriteLine(" |\t|- * Vnic"); GetVnicRequest getVnicRequest = new GetVnicRequest() { VnicId = vnicA.VnicId }; var vnic = networkingClient.GetVnic(getVnicRequest); Console.WriteLine(" |\t|\t name:" + vnic.Vnic.DisplayName); Console.WriteLine(" |\t|\t id:" + vnic.Vnic.Id); Console.WriteLine(" |\t|\t state:" + vnic.Vnic.LifecycleState); Console.WriteLine(" |\t|\t privateIp:" + vnic.Vnic.PrivateIp); Console.WriteLine(" |\t|\t publicIp:" + vnic.Vnic.PublicIp); }); // get instance atattch volumes var volumeAtattch = new ListVolumeAttachmentsRequest() { InstanceId = instance.Id, CompartmentId = instance.CompartmentId, AvailabilityDomain = instance.AvailabilityDomain, Limit = 50 }; var listVolAtattch = computeClient.ListVolumeAttachments(volumeAtattch); listVolAtattch.Items.ForEach(volAtt => { Console.WriteLine(" |\t|- * Volume"); // get bootvolume var getVolumeRequest = new GetVolumeRequest() { VolumeId = volAtt.VolumeId }; var vol = blockstorageClient.GetVolume(getVolumeRequest); Console.WriteLine(" |\t|\t name:" + vol.Volume.DisplayName); Console.WriteLine(" |\t|\t id:" + vol.Volume.Id); Console.WriteLine(" |\t|\t state:" + vol.Volume.LifecycleState); Console.WriteLine(" |\t|\t sizeInGBs:" + vol.Volume.SizeInGBs.Value); }); }); // get list Machine Images Console.WriteLine(); Console.WriteLine("* List Image------------------------ max 10"); var listImagesRequest = new ListImagesRequest() { // target compartment is root compartment(tenancy) CompartmentId = config.TenancyId, Limit = 10, LifecycleState = ListImagesRequest.LifecycleStates.AVAILABLE, SortOrder = SortOrder.ASC, SortBy = ListImagesRequest.SortByParam.TIMECREATED }; // get instance var listImage = computeClient.ListImages(listImagesRequest); listImage.Items.ForEach(image => { Console.WriteLine(" |-" + image.DisplayName); Console.WriteLine(" | id: " + image.Id); Console.WriteLine(" | os: " + image.OperatingSystem); Console.WriteLine(" | os ver: " + image.OperatingSystemVersion); Console.WriteLine(" | lifecycle: " + image.LifecycleState); Console.WriteLine(" | sizeInMBs: " + image.SizeInMBs); Console.WriteLine(" | BaseMachineId: " + image.BaseImageId); }); }