コード例 #1
0
        internal MetricsEmitter(IInternalServiceConfiguration config, TraceWriterWrapper traceWriter)
        {
            this.config = Guard.IsNotNull(config, nameof(config));
            this.trace  = Guard.IsNotNull(traceWriter, nameof(traceWriter));

            var mdmAccount   = config.MdmAccountName;
            var mdmNamespace = config.MdmNamespace;

            if (string.IsNullOrEmpty(mdmAccount) || string.IsNullOrEmpty(mdmNamespace))
            {
                this.trace.WriteError("MetricsEmitter: MdmAccount or Namespace value is empty in configuration. Disabling metrics.");
                this.isMetricsEnabled = false;
                return;
            }

            ErrorContext mdmError = new ErrorContext();

            DefaultConfiguration.SetDefaultDimensionNamesValues(
                ref mdmError,
                1,
                new[] { "DataCenter" },
                new[] { this.config.DataCenter });

            this.clusterHealthMetric                = MeasureMetric2D.Create(mdmAccount, mdmNamespace, "ClusterHealthState", ClusterNameDimension, HealthStateDimension);
            this.appHealthMetric                    = MeasureMetric3D.Create(mdmAccount, mdmNamespace, "AppHealthState", ClusterNameDimension, AppNameDimension, HealthStateDimension);
            this.nodeHealthMetric                   = MeasureMetric3D.Create(mdmAccount, mdmNamespace, "NodeHealthState", ClusterNameDimension, NodeNameDimension, HealthStateDimension);
            this.serviceHealthMetric                = MeasureMetric4D.Create(mdmAccount, mdmNamespace, "ServiceHealthState", ClusterNameDimension, AppNameDimension, ServiceNameDimension, HealthStateDimension);
            this.partitionHealthMetric              = MeasureMetric5D.Create(mdmAccount, mdmNamespace, "PartitionHealthState", ClusterNameDimension, AppNameDimension, ServiceNameDimension, PartitionIdDimension, HealthStateDimension);
            this.replicaHealthMetric                = MeasureMetric6D.Create(mdmAccount, mdmNamespace, "ReplicaHealthState", ClusterNameDimension, AppNameDimension, ServiceNameDimension, PartitionIdDimension, ReplicaIdDimension, HealthStateDimension);
            this.deployedAppHealthMetric            = MeasureMetric4D.Create(mdmAccount, mdmNamespace, "DeployedApplicationHealthState", ClusterNameDimension, AppNameDimension, NodeNameDimension, HealthStateDimension);
            this.deployedServicePackageHealthMetric = MeasureMetric5D.Create(mdmAccount, mdmNamespace, "DeployedServicePackageHealthState", ClusterNameDimension, AppNameDimension, ServiceNameDimension, NodeNameDimension, HealthStateDimension);

            this.clusterHealthEventMetric                = MeasureMetric5D.Create(mdmAccount, mdmNamespace, "ClusterHealthEvent", ClusterNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.appHealthEventMetric                    = MeasureMetric6D.Create(mdmAccount, mdmNamespace, "AppHealthEvent", ClusterNameDimension, AppNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.nodeHealthEventMetric                   = MeasureMetric6D.Create(mdmAccount, mdmNamespace, "NodeHealthEvent", ClusterNameDimension, NodeNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.serviceHealthEventMetric                = MeasureMetric7D.Create(mdmAccount, mdmNamespace, "ServiceHealthEvent", ClusterNameDimension, AppNameDimension, ServiceNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.partitionHealthEventMetric              = MeasureMetric8D.Create(mdmAccount, mdmNamespace, "PartitionHealthEvent", ClusterNameDimension, AppNameDimension, ServiceNameDimension, PartitionIdDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.replicaHealthEventMetric                = MeasureMetric9D.Create(mdmAccount, mdmNamespace, "ReplicaHealthEvent", ClusterNameDimension, AppNameDimension, ServiceNameDimension, PartitionIdDimension, ReplicaIdDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.deployedAppHealthEventMetric            = MeasureMetric7D.Create(mdmAccount, mdmNamespace, "DeployedApplicationHealthEvent", ClusterNameDimension, AppNameDimension, NodeNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);
            this.deployedServicePackageHealthEventMetric = MeasureMetric8D.Create(mdmAccount, mdmNamespace, "DeployedServicePackageHealthEvent", ClusterNameDimension, AppNameDimension, ServiceNameDimension, NodeNameDimension, HealthStateDimension, SourceDimension, PropertyDimension, IsExpiredDimension);

            this.trace.WriteInfo("MetricsEmitter: Initialized Service Fabric MDM metrics. AccountName: {0}, namespace: {1}", mdmAccount, mdmNamespace);
        }
コード例 #2
0
 public FakeMetricsEmitter(IInternalServiceConfiguration config, TraceWriterWrapper traceWriter)
     : base(config, traceWriter)
 {
 }