2016-06-10 38 views
7

Sto cercando di ottenere la percentuale di CPU di una particolare istanza Amazon EC2 utilizzando CloudWatchAWS - Come modificare la versione del servizio di configurazione cloudwatchclient in AWSSDK per NET

sto affrontando questo errore quando si esegue il codice (vedi sotto)

la versione richiesta (2010-08-01) del servizio AmazonEC2 non esiste"

non ho potuto cambiare il ServiceVersion in AmazonCloudWatchClient perché ha Read Only property

Il set di default è 2010-08-01

ho bisogno di cambiare il ServiceVersion a 2014-10-01

Si prega di trovare la configurazione di seguito

Error Image

E la configurazione nel testo qui

var client = new AmazonCloudWatchClient(clientkey,secretkey,new  AmazonCloudWatchConfig{ServiceURL="url"}) 
    var dimension = new Dimension 
     { 
      Name = "instanceName", 
      Value = "instanceID" 
     }; 
    var request = new GetMetricStatisticsRequest 
     { 
      Dimensions = new List<Dimension>() { dimension }, 
      EndTime = DateTime.Today, 
      MetricName = "CPUUtilization", 
      Namespace = "AWS/EC2", 
      // Get statistics by day. 
      Period = (int)TimeSpan.FromDays(1).TotalSeconds, 
      // Get statistics for the past month. 
      StartTime = DateTime.Today.Subtract(TimeSpan.FromDays(30)), 
      Statistics = new List<string>() { "Minimum" }, 
      Unit = StandardUnit.Percent    
     }; 

    var response = client.GetMetricStatistics(request); 

     if (response.Datapoints.Count > 0) 
     { 
      foreach (var point in response.Datapoints) 
      { 
       Console.WriteLine(point.Timestamp.ToShortDateString() + 
        " " + point.Minimum + "%"); 
      } 
     } 

risposta

0

perché pensi che avresti bisogno di cambiare la data?

La proprietà non ha in effetti alcun setter (vedere code) in modo da non essere in grado di definire una configurazione con tale proprietà.

ho capito non volete rivelare le informazioni, ma che cosa hai sotto

var dimension = new Dimension 
     { 
      Name = "instanceName", 
      Value = "instanceID" 
     }; 

Il nome dovrebbe essere InstanceName e se si utilizza un'istanza ID come si indica nel Valore dovrebbe essere InstanceId qualcosa di simile

var dimension = new Dimension 
     { 
      Name = "InstanceId" 
      Value = "i-54cfb999" 
     }; 
+0

override non sta accadendo per la versione del servizio di configurazione. di nuovo sto ottenendo lo stesso errore – arun

+0

sì perché in override non esiste un metodo set ma strano, usando il giusto parametro Name con il valore associato corretto dovrebbe funzionare –

+0

Created partial class e configurato la versione AmazonCloudWatchConfig Config = new AmazonCloudWatchConfig(); Config.RegionEndpoint = RegionEndpoint.USEast1; var client = new AmazonCloudWatchClient ("xxxxx", "xxxx", Config); anche questo non ha funzionato ottenendo l'errore "non è possibile convertire Amazon. cloudwatch.amazoncloudwatchconfig a amazon.regionendpoint" – arun