Datasource for API Gateway Resources behind a stage
I have been using a custom datasource to collect the metrics for each resource and method (excluding OPTIONS) behind a API Gateway stage. It has been extremely useful in our production environments. I would share the datasource via the Exchange, but the discovery method I'm using will not be universal, so I think it would be best if that discovery were to work natively. If possible, could we please have a discovery method for AWS API Gateway Resources by Stage? *Something to note - This has the potential to discover quite a few resources and thus, create a substantial number of cloudwatch calls which might hit customer billing. For this reason, I added a custom property ##APIGW.stages## so that I could plug in the specific stages I wish to monitor instead of having each one automatically discovered. The Applies To looks like this: system.cloud.category == "AWS/APIGateway" && apigw.stages Autodiscovery is currently written in PowerShell (hence why not everyone can take advantage of it) $apigwID = '##system.aws.resourceid##'; $region = '##system.aws.region##' $stages = '##APIGW.Stages##'; $resources = Get-AGResourceList -RestApiId $apigwID -region $region $stages.split(' ') | %{ $stage = $_ $resources | %{ if($_.ResourceMethods) { $path = $_.Path $_.ResourceMethods.Keys | where{$_ -notmatch 'OPTIONS'} | %{ $wildvalue = "Stage=$stage>Resource=$Path>Method=$_" Write-Host "$wildvalue##${Stage}: $_ $Path######auto.stage=$stage" } } } }13Views0likes1CommentDimensionless Cloudwatch Metrics
I've been creating datasources to collect our custom AWS Cloudwatch metrics as per the docs:https://www.logicmonitor.com/support/monitoring/cloud/monitoring-custom-cloudwatch-metrics/- mainly this is fine... However it can't cope with dimensionless metrics: " Namespace>Dimensions>Metric>AggregationMethod , where Dimensions should be one or more key value pairs" I've tried creating datapoints without a dimension but it returns NAN (probably because LM requires "one or more key value pairs" for dimensions). We currently use a Python script to collect most our custom metrics but it's resource intensive for our collectors and I'm trying to move away from it. Does anyone know of a way to use the 'AWS CLOUDWATCH' collector with dimensionless metrics?16Views0likes5CommentsCloud Collector to Consume AWS RDS Enhanced Monitoring
It looks like someone in my org had enabled "Enhanced Monitoring" for several AWS RDS instances--a surprise, to be sure, but a welcome one . I would love Cloud Collector method that can consume this data and display it along side all other metrics we are collecting in LogicMonitor. Implementation should be relatively simple. In the discovery, presumably usingdescribe-db-instances, we would just need a system.aws* property for the "dbiresourceid" which can be used to get-log-events.12Views0likes1CommentAlert Can't connect https, but can curl from collector
Got an issue where getting a status "5", can't connect on https-443 to a web server on AWS EC2. But can connect to httpssite from public browser and using curl from the collector, without issue. Running diagnostics through LM shows a timeout. The "Poll Now" data looks fine except Normal Datapoints shows errors. These errors cannot be confirmed.111Views0likes6CommentsAWS Lambda Alias
GX2WXT A single Lambda function might have several versions. The default Lambda datasource monitors and alerts on the aggregate performance of each Lambda function. Using the Alias functionality in AWS, this datasource returns CloudWatch metrics specifically for the versions to which you have assigned aliases, allowing you to customize alert thresholds or compare performance across different versions of the same function. This datasource does not automatically discover aliases and begin monitoring them (as this could very quickly translate into several Aliases being monitored and drive up your CloudWatch API bill). Instead, add only the Aliases you want monitored by adding the device property "lambda.aliases" either to individual Lambda functions or at the group level if you're using the same Alias across several lambda functions. To add more than one, simply list them separated with a single space - e.g: "Prod QA01 QA02". If an alias does not exist, no data will be returned. This datasource is otherwise a clone of the existing AWS_Lambda datasource with the default alert thresholds.2Views2likes1CommentAWS_ClassicELB_ServiceLimits -- ListenerLimit & ListenerUsage
AWS lists that the Listener limit is on a per ELB basis. TheAWS_ClassicELB_ServiceLimits datasource seems to intimate that the ListenerUsage is returning the total number of listeners for the given region. Is this useful information to capture on a regional basis or should this be refactored to apply to each classic ELB?Solved4Views0likes1CommentTuning a collector to work on a t2.micro EC2 instance?
I know that it is not exactly recommended/reliable to use a 1GB/1CPU Core machine to monitor...but it seems that installing a "nano" sized collector on a t2.micro AWS instance and having it just monitoritself brings the AWS instance to a screeching halt. I am seeing that when the collector is running, top shows that CPU pegs to 100% almost nonstop. Memory is not hit quite as bad..but it does get up there to use 500mb+ But the CPU load average is 5+ cores and it makes the systemunusable. Sometimes this causes the instance to throwstatus alerts & even crash. Question: Has anybodybeen able to tweak the wrapper.conf etc files to make the collector CPU load less demanding?Solved5Views1like1CommentUtilize all data found in AWS Cost and Usage reports
I would like to see the cloud collector for AWSutilize all of therelevant data in the cost and usagereports provided by Amazon. For example, I just enabled billing monitoring for an AWS account, and the billing bucketcontains reportsfor every day in June, but the collectorjust calculated the month-to-date total costs as of today, thoughit could have calculated the month-to-date total costs for each day in June and populated the graphs accordingly. It also ignored the reports for May.4Views0likes5CommentsFeature request / gripe: extremely long active-discovery times for AWS billing data sources
Earlier this evening I used the REST API to create an AWS group containinganaccount device for the purposes of billing monitoring. I didn't specify any services to monitor; I only provided a billing bucket and report path prefix. (Side note: the example under (2) athttps://www.logicmonitor.com/support/rest-api-developers-guide/device-groups/aws-device-groups/is out of date.) Nearly four hours later, LogicMonitor has discovered a handful of instances for each of the Cost By Service, Cost By Operation, and Cost By Region data sources. It has yet to discover an instance for the Cost By Account data source. (Those four comprise what comes with billing monitoring.) The billing bucket had report files waiting to be retrieved as soon as the account device was created. I have the active discovery schedule for each of the aforementioned data sources set to 15 minutes, though that shouldn't matter because, as stated previously, I force active discovery upon device creation. I have the polling frequency for one of the four data sources set to 1 minute for testing purposes, with the rest set to 1 hour, but that shouldn't matter either, because surely instances are polled at least once when they are discovered, regardless of the frequency setting (?).0Views0likes1CommentCustom CloudWatch Metrics without a host
We have some custom CloudWatch metrics we'd like to gather, display and alert on however, they aren't specific to any host or AWS resource. If we push application specific metrics into CloudWatch, we don't want them tied to any specific application host as hosts/instances can come-and-go. We push these metrics to CloudWatch without an associated EC2 / AWS resource and can see them in CloudWatch, but without an InstanceID, we can not pull these metrics into Logic Monitor. We'd like to be able to pull in and organize any metric from CloudWatch, regardless of whether or not its dimensions include an InstanceID etc.10Views1like3Comments