protected override void ProcessRecord()
        {
            LogMetric logMetric = new LogMetric()
            {
                Name        = MetricName,
                Description = Description
            };

            logMetric.Filter = ConstructLogFilterString(
                logName: PrefixProjectToLogName(LogName, Project),
                logSeverity: Severity,
                selectedType: SelectedResourceType,
                before: Before,
                after: After,
                otherFilter: Filter);

            try
            {
                LoggingBaseServiceRequest <LogMetric> request = GetRequest(logMetric);
                LogMetric result = request.Execute();
                WriteObject(result);
            }
            catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.Conflict)
            {
                WriteResourceExistsError(
                    exceptionMessage: $"Cannot create '{MetricName}' in project '{Project}' because it already exists.",
                    errorId: "MetricAlreadyExists",
                    targetObject: MetricName);
            }
        }
        public static bool Execute(LogMetric logMetric, string dataconnectionstring)
        {
            using (var connection = new SqlConnection(dataconnectionstring))
            {
                var cmd = new SqlCommand("usp_KirokuG2_Metric_Insert", connection);

                cmd.CommandType = System.Data.CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("dt_session", logMetric.Timestamp);
                cmd.Parameters.AddWithValue("nvc_id", logMetric.Id);
                cmd.Parameters.AddWithValue("nvc_source", logMetric.Source);
                cmd.Parameters.AddWithValue("nvc_function", logMetric.Function);
                cmd.Parameters.AddWithValue("i_type", logMetric.Type);
                cmd.Parameters.AddWithValue("nvc_key", logMetric.Key);
                cmd.Parameters.AddWithValue("nvc_value", logMetric.Value);

                cmd.CommandTimeout = 0;

                connection.Open();

                var reader = cmd.ExecuteReader();

                var recordCount = reader.RecordsAffected;

                return(true);
            }
        }
        protected override LoggingBaseServiceRequest <LogMetric> GetRequest(LogMetric logMetric)
        {
            string formattedMetricName = PrefixProjectToMetricName(MetricName, Project);

            // If user does not supply filter or description for update request, we have to use the existing metric's filter.
            if (string.IsNullOrWhiteSpace(logMetric.Filter) || string.IsNullOrWhiteSpace(logMetric.Description))
            {
                try
                {
                    ProjectsResource.MetricsResource.GetRequest getRequest = Service.Projects.Metrics.Get(formattedMetricName);
                    LogMetric existingMetric = getRequest.Execute();
                    if (string.IsNullOrWhiteSpace(logMetric.Filter))
                    {
                        logMetric.Filter = existingMetric.Filter;
                    }

                    if (string.IsNullOrWhiteSpace(logMetric.Description))
                    {
                        logMetric.Description = existingMetric.Description;
                    }
                }
                catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.NotFound)
                {
                    // We don't need to throw for description since it's optional.
                    if (string.IsNullOrWhiteSpace(logMetric.Filter))
                    {
                        throw new PSArgumentNullException(
                                  "Cannot construct filter for the metric." +
                                  "Please use either -LogName, -Severity, -ResourceType, -Before, -After or -Filter parameters.");
                    }
                }
            }
            return(Service.Projects.Metrics.Update(logMetric, PrefixProjectToMetricName(MetricName, Project)));
        }
        public async Task UpdateLogMetricAsync()
        {
            Mock <MetricsServiceV2.MetricsServiceV2Client> mockGrpcClient = new Mock <MetricsServiceV2.MetricsServiceV2Client>(MockBehavior.Strict);
            UpdateLogMetricRequest expectedRequest = new UpdateLogMetricRequest
            {
                MetricNameAsMetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
                Metric = new LogMetric(),
            };
            LogMetric expectedResponse = new LogMetric
            {
                MetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
                Description     = "description-1724546052",
                Filter          = "filter-1274492040",
                ValueExtractor  = "valueExtractor2047672534",
            };

            mockGrpcClient.Setup(x => x.UpdateLogMetricAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <LogMetric>(Task.FromResult(expectedResponse), null, null, null, null));
            MetricsServiceV2Client client     = new MetricsServiceV2ClientImpl(mockGrpcClient.Object, null);
            MetricNameOneof        metricName = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]"));
            LogMetric metric   = new LogMetric();
            LogMetric response = await client.UpdateLogMetricAsync(metricName, metric);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        public void CreateLogMetric()
        {
            Mock <MetricsServiceV2.MetricsServiceV2Client> mockGrpcClient = new Mock <MetricsServiceV2.MetricsServiceV2Client>(MockBehavior.Strict);
            CreateLogMetricRequest expectedRequest = new CreateLogMetricRequest
            {
                ParentAsParentNameOneof = ParentNameOneof.From(new ProjectName("[PROJECT]")),
                Metric = new LogMetric(),
            };
            LogMetric expectedResponse = new LogMetric
            {
                MetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
                Description     = "description-1724546052",
                Filter          = "filter-1274492040",
                ValueExtractor  = "valueExtractor2047672534",
            };

            mockGrpcClient.Setup(x => x.CreateLogMetric(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(expectedResponse);
            MetricsServiceV2Client client = new MetricsServiceV2ClientImpl(mockGrpcClient.Object, null);
            ParentNameOneof        parent = ParentNameOneof.From(new ProjectName("[PROJECT]"));
            LogMetric metric   = new LogMetric();
            LogMetric response = client.CreateLogMetric(parent, metric);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
示例#6
0
        public void UpdateLogMetricResourceNames()
        {
            moq::Mock <MetricsServiceV2.MetricsServiceV2Client> mockGrpcClient = new moq::Mock <MetricsServiceV2.MetricsServiceV2Client>(moq::MockBehavior.Strict);
            UpdateLogMetricRequest request = new UpdateLogMetricRequest
            {
                MetricNameAsMetricName = MetricName.FromProjectMetric("[PROJECT]", "[METRIC]"),
                Metric = new LogMetric(),
            };
            LogMetric expectedResponse = new LogMetric
            {
                MetricName       = MetricName.FromProjectMetric("[PROJECT]", "[METRIC]"),
                Description      = "description2cf9da67",
                Filter           = "filtere47ac9b2",
                MetricDescriptor = new ga::MetricDescriptor(),
                ValueExtractor   = "value_extractor09b994a6",
                LabelExtractors  =
                {
                    {
                        "key8a0b6e3c",
                        "value60c16320"
                    },
                },
                BucketOptions = new ga::Distribution.Types.BucketOptions(),
                CreateTime    = new wkt::Timestamp(),
                UpdateTime    = new wkt::Timestamp(),
            };

            mockGrpcClient.Setup(x => x.UpdateLogMetric(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            MetricsServiceV2Client client = new MetricsServiceV2ClientImpl(mockGrpcClient.Object, null);
            LogMetric response            = client.UpdateLogMetric(request.MetricNameAsMetricName, request.Metric);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
示例#7
0
 /// <summary>Snippet for GetLogMetric</summary>
 public void GetLogMetric()
 {
     // Snippet: GetLogMetric(string, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     string metricName = "projects/[PROJECT]/metrics/[METRIC]";
     // Make the request
     LogMetric response = metricsServiceV2Client.GetLogMetric(metricName);
     // End snippet
 }
 public void GetLogMetric()
 {
     // Snippet: GetLogMetric(string,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     string formattedMetricName = MetricsServiceV2Client.FormatMetricName("[PROJECT]", "[METRIC]");
     // Make the request
     LogMetric response = metricsServiceV2Client.GetLogMetric(formattedMetricName);
     // End snippet
 }
        protected override LoggingBaseServiceRequest <LogMetric> GetRequest(LogMetric logMetric)
        {
            if (string.IsNullOrWhiteSpace(logMetric.Filter))
            {
                throw new PSArgumentNullException(
                          "Cannot construct filter for the metric." +
                          "Please use either -LogName, -Severity, -ResourceType, -Before, -After or -Filter parameters.");
            }

            return(Service.Projects.Metrics.Create(logMetric, $"projects/{Project}"));
        }
示例#10
0
 /// <summary>Snippet for GetLogMetric</summary>
 public void GetLogMetric()
 {
     // Snippet: GetLogMetric(MetricNameOneof,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     MetricNameOneof metricName = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]"));
     // Make the request
     LogMetric response = metricsServiceV2Client.GetLogMetric(metricName);
     // End snippet
 }
示例#11
0
 /// <summary>Snippet for GetLogMetric</summary>
 public void GetLogMetricResourceNames()
 {
     // Snippet: GetLogMetric(LogMetricName, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     LogMetricName metricName = LogMetricName.FromProjectMetric("[PROJECT]", "[METRIC]");
     // Make the request
     LogMetric response = metricsServiceV2Client.GetLogMetric(metricName);
     // End snippet
 }
 public void CreateLogMetric()
 {
     // Snippet: CreateLogMetric(string,LogMetric,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     string    formattedParent = MetricsServiceV2Client.FormatParentName("[PROJECT]");
     LogMetric metric          = new LogMetric();
     // Make the request
     LogMetric response = metricsServiceV2Client.CreateLogMetric(formattedParent, metric);
     // End snippet
 }
示例#13
0
 /// <summary>Snippet for UpdateLogMetric</summary>
 public void UpdateLogMetricResourceNames()
 {
     // Snippet: UpdateLogMetric(MetricName, LogMetric, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     MetricName metricName = MetricName.FromProjectMetric("[PROJECT]", "[METRIC]");
     LogMetric  metric     = new LogMetric();
     // Make the request
     LogMetric response = metricsServiceV2Client.UpdateLogMetric(metricName, metric);
     // End snippet
 }
示例#14
0
 /// <summary>Snippet for CreateLogMetric</summary>
 public void CreateLogMetric()
 {
     // Snippet: CreateLogMetric(string, LogMetric, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     string    parent = "projects/[PROJECT]";
     LogMetric metric = new LogMetric();
     // Make the request
     LogMetric response = metricsServiceV2Client.CreateLogMetric(parent, metric);
     // End snippet
 }
示例#15
0
 /// <summary>Snippet for CreateLogMetric</summary>
 public void CreateLogMetric()
 {
     // Snippet: CreateLogMetric(ParentNameOneof,LogMetric,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     ParentNameOneof parent = ParentNameOneof.From(new ProjectName("[PROJECT]"));
     LogMetric       metric = new LogMetric();
     // Make the request
     LogMetric response = metricsServiceV2Client.CreateLogMetric(parent, metric);
     // End snippet
 }
示例#16
0
 /// <summary>Snippet for CreateLogMetric</summary>
 public void CreateLogMetricResourceNames()
 {
     // Snippet: CreateLogMetric(ProjectName, LogMetric, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     ProjectName parent = ProjectName.FromProject("[PROJECT]");
     LogMetric   metric = new LogMetric();
     // Make the request
     LogMetric response = metricsServiceV2Client.CreateLogMetric(parent, metric);
     // End snippet
 }
        public async Task GetLogMetricAsync()
        {
            // Snippet: GetLogMetricAsync(string,CallSettings)
            // Additional: GetLogMetricAsync(string,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
            // Initialize request argument(s)
            string formattedMetricName = MetricsServiceV2Client.FormatMetricName("[PROJECT]", "[METRIC]");
            // Make the request
            LogMetric response = await metricsServiceV2Client.GetLogMetricAsync(formattedMetricName);

            // End snippet
        }
示例#18
0
 /// <summary>Snippet for GetLogMetric</summary>
 public void GetLogMetric_RequestObject()
 {
     // Snippet: GetLogMetric(GetLogMetricRequest,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     GetLogMetricRequest request = new GetLogMetricRequest
     {
         MetricNameAsMetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
     };
     // Make the request
     LogMetric response = metricsServiceV2Client.GetLogMetric(request);
     // End snippet
 }
示例#19
0
        /// <summary>Snippet for GetLogMetricAsync</summary>
        public async Task GetLogMetricAsync()
        {
            // Snippet: GetLogMetricAsync(MetricNameOneof,CallSettings)
            // Additional: GetLogMetricAsync(MetricNameOneof,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            MetricNameOneof metricName = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]"));
            // Make the request
            LogMetric response = await metricsServiceV2Client.GetLogMetricAsync(metricName);

            // End snippet
        }
        public async Task CreateLogMetricAsync()
        {
            // Snippet: CreateLogMetricAsync(string,LogMetric,CallSettings)
            // Additional: CreateLogMetricAsync(string,LogMetric,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
            // Initialize request argument(s)
            string    formattedParent = MetricsServiceV2Client.FormatParentName("[PROJECT]");
            LogMetric metric          = new LogMetric();
            // Make the request
            LogMetric response = await metricsServiceV2Client.CreateLogMetricAsync(formattedParent, metric);

            // End snippet
        }
示例#21
0
        /// <summary>Snippet for GetLogMetricAsync</summary>
        public async Task GetLogMetricAsync()
        {
            // Snippet: GetLogMetricAsync(string, CallSettings)
            // Additional: GetLogMetricAsync(string, CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            string metricName = "projects/[PROJECT]/metrics/[METRIC]";
            // Make the request
            LogMetric response = await metricsServiceV2Client.GetLogMetricAsync(metricName);

            // End snippet
        }
示例#22
0
        /// <summary>Snippet for GetLogMetricAsync</summary>
        public async Task GetLogMetricResourceNamesAsync()
        {
            // Snippet: GetLogMetricAsync(LogMetricName, CallSettings)
            // Additional: GetLogMetricAsync(LogMetricName, CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            LogMetricName metricName = LogMetricName.FromProjectMetric("[PROJECT]", "[METRIC]");
            // Make the request
            LogMetric response = await metricsServiceV2Client.GetLogMetricAsync(metricName);

            // End snippet
        }
示例#23
0
 /// <summary>Snippet for CreateLogMetric</summary>
 public void CreateLogMetric_RequestObject()
 {
     // Snippet: CreateLogMetric(CreateLogMetricRequest,CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     CreateLogMetricRequest request = new CreateLogMetricRequest
     {
         ParentAsParentNameOneof = ParentNameOneof.From(new ProjectName("[PROJECT]")),
         Metric = new LogMetric(),
     };
     // Make the request
     LogMetric response = metricsServiceV2Client.CreateLogMetric(request);
     // End snippet
 }
示例#24
0
        /// <summary>Snippet for CreateLogMetricAsync</summary>
        public async Task CreateLogMetricAsync()
        {
            // Snippet: CreateLogMetricAsync(ParentNameOneof,LogMetric,CallSettings)
            // Additional: CreateLogMetricAsync(ParentNameOneof,LogMetric,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            ParentNameOneof parent = ParentNameOneof.From(new ProjectName("[PROJECT]"));
            LogMetric       metric = new LogMetric();
            // Make the request
            LogMetric response = await metricsServiceV2Client.CreateLogMetricAsync(parent, metric);

            // End snippet
        }
示例#25
0
        /// <summary>Snippet for CreateLogMetricAsync</summary>
        public async Task CreateLogMetricResourceNamesAsync()
        {
            // Snippet: CreateLogMetricAsync(MetricName, LogMetric, CallSettings)
            // Additional: CreateLogMetricAsync(MetricName, LogMetric, CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            MetricName parent = MetricName.FromProjectMetric("[PROJECT]", "[METRIC]");
            LogMetric  metric = new LogMetric();
            // Make the request
            LogMetric response = await metricsServiceV2Client.CreateLogMetricAsync(parent, metric);

            // End snippet
        }
示例#26
0
 /// <summary>Snippet for UpdateLogMetric</summary>
 public void UpdateLogMetricRequestObject()
 {
     // Snippet: UpdateLogMetric(UpdateLogMetricRequest, CallSettings)
     // Create client
     MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.Create();
     // Initialize request argument(s)
     UpdateLogMetricRequest request = new UpdateLogMetricRequest
     {
         MetricNameAsLogMetricName = LogMetricName.FromProjectMetric("[PROJECT]", "[METRIC]"),
         Metric = new LogMetric(),
     };
     // Make the request
     LogMetric response = metricsServiceV2Client.UpdateLogMetric(request);
     // End snippet
 }
示例#27
0
        /// <summary>Snippet for CreateLogMetricAsync</summary>
        public async Task CreateLogMetricAsync()
        {
            // Snippet: CreateLogMetricAsync(string, LogMetric, CallSettings)
            // Additional: CreateLogMetricAsync(string, LogMetric, CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            string    parent = "projects/[PROJECT]";
            LogMetric metric = new LogMetric();
            // Make the request
            LogMetric response = await metricsServiceV2Client.CreateLogMetricAsync(parent, metric);

            // End snippet
        }
示例#28
0
        /// <summary>Snippet for GetLogMetricAsync</summary>
        public async Task GetLogMetricAsync_RequestObject()
        {
            // Snippet: GetLogMetricAsync(GetLogMetricRequest,CallSettings)
            // Additional: GetLogMetricAsync(GetLogMetricRequest,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            GetLogMetricRequest request = new GetLogMetricRequest
            {
                MetricNameAsMetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
            };
            // Make the request
            LogMetric response = await metricsServiceV2Client.GetLogMetricAsync(request);

            // End snippet
        }
        public async Task UpdateLogMetricAsync_RequestObject()
        {
            // Snippet: UpdateLogMetricAsync(UpdateLogMetricRequest,CallSettings)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            UpdateLogMetricRequest request = new UpdateLogMetricRequest
            {
                MetricNameAsMetricNameOneof = MetricNameOneof.From(new MetricName("[PROJECT]", "[METRIC]")),
                Metric = new LogMetric(),
            };
            // Make the request
            LogMetric response = await metricsServiceV2Client.UpdateLogMetricAsync(request);

            // End snippet
        }
示例#30
0
        /// <summary>Snippet for CreateLogMetricAsync</summary>
        public async Task CreateLogMetricAsync_RequestObject()
        {
            // Snippet: CreateLogMetricAsync(CreateLogMetricRequest,CallSettings)
            // Additional: CreateLogMetricAsync(CreateLogMetricRequest,CancellationToken)
            // Create client
            MetricsServiceV2Client metricsServiceV2Client = await MetricsServiceV2Client.CreateAsync();

            // Initialize request argument(s)
            CreateLogMetricRequest request = new CreateLogMetricRequest
            {
                ParentAsParentNameOneof = ParentNameOneof.From(new ProjectName("[PROJECT]")),
                Metric = new LogMetric(),
            };
            // Make the request
            LogMetric response = await metricsServiceV2Client.CreateLogMetricAsync(request);

            // End snippet
        }