I am aware that Azure Storage Account has the availability alert. What about Azure App Service? Does it support availability alert too? I am not considering Application Insights because it is still under preview and there is no SLA.
You can setup an amount of alerting from the normal App Service itself, if you go to the portal, select the Web App, API App or Mobile App in the app service, there is a Monitoring section which has an Alerts page on it- this will allow you to configure things like "Let me know when there are more than 5 Http 500 errors in a 10 minute period".
If you'd like availability monitoring however, then this is reported within Application Insights. There are a couple of different types you can run in here, standard "ping" tests against your endpoint that look for a 200 response, or you can run web tests that you've pre-authored/recorded and uploaded. You can run these from various countries all around the world.
As for your comment on App insights being in preview - you're in luck:
General availability of Azure Application Insights
Related
So I know this question probably gets asked a lot but this is kind of a specific one.
I am currently working as a webdev for my company and we are currently developing a webapp for our customers to use (energy management system and monitoring app).
My boss asked me to take on the DevOps role for this application (Which in this case is just basically setting up the aws services). The thing is I am pretty new to setting up AWS services and i am not sure where i should start. I am hoping some of the more experienced users could suggest a workflow after I describe what the app will be doing and the stacks we are using.
App/Product description:
Our app comes with an IoT module (ESP 32) that is placed into a customers Electrical Cabinet. We connect several devices to this module so we can read the incoming data.
The module sends this data to an MQTT protocol. After this we read the data from the MQTT protocol using telegraf. Telegraf sends this data to influxDB so we can use it in our application. All the devices (from each customer) data is saved to influxDB this way.
The application itself is written in NodeJS (backend) and VueJS/Nuxt (frontend). It's a simple dashboard application that shows the customer the specific data for his/her device. This authorization is done with Nuxt-auth on the frontend and Nest Js authentication on the backend. All the customer data is saved to a SQL database.
So this is a simple overview of the app. All technologies used are:
Telegraf
InfluxDB
NodeJS (NestJs)
VueJS (NuxtJs)
MySQL
IoT
MQTT protocol
What would be the best way to deploy this app using aws?
Currently our dev team was thinking of this:
AWS Fargate: Docking the application and using Fargate to deploy
AWS RDS: SQL database
InfluxDb
Telegraf
AWS IoT Core
The application should be online 24/7 and we are thinking our userbase will be around 500 users (recurring logins on the platform)
I have been looking for similar questions that match our needs but didn't really find any. If someone does find one please feel free to share them.
Should you need more info, I will be happy to supply more information.
I installed managed Anthos on a GKE cluster. Anthos Service Mesh is working and is displaying my API. Thanks to that Services that are in Monitoring automatically detect my API. This is great as it enables me to easily set SLOs and Error Budget for my API.
However I would like to be able to easily set SLOs for individual endpoints in my api. Services(in Monitoring) detect only my API and not the endpoints within my API(my API is one pod/container + sidecar). I tried to add endpoints to Services in Monitoring but it looks like it is only possible to add Kubernetes Objects there.
Is there a way to use Services in Monitoring with endpoints? Is the only way to do so to break endpoints to separate microservices?
You can monitor your endpoints using Cloud Endpoints with OpenAPI, which allows you to monitor the health of APIs you own by using the logs and metrics Cloud Endpoints maintains for you automatically. When users make requests to your API, Endpoints logs information about the requests and responses and also tracks three of the four golden signals of monitoring: latency, traffic, and errors. These usage and performance metrics help you monitor your API.
The following URL Configuring Cloud Endpoints has the configuration process for Cloud Endpoints. Use this URL Monitoring your API as a reference on the monitoring process for your API, and this last URL for the Cloud Endpoint’s overview.
I'm trying to figure out if it's feasible to create a serverless web app in which an API function creates a job that is scheduled to run once at a specific time and date.
I've looked at the three main providers, AWS, Google Cloud and Microsoft Azure. All three provide everything needed for a serverless web app in general, but I'm not sure I understand if any of them support what I described above.
AWS has CloudWatch, which has an API. However, there is nothing about Events in the API doc, it looks like Events can only be created by hand in the console or via Terraform.
Google Cloud has the Scheduler. However, there is no mention of an API in the docs. It does support Terraform too, though.
Microsoft has the Azure Scheduler, and that one seems to support creating jobs via an API.
Doesn't Terraform require an API, so am I missing anything?
I'm completely new to serverless web apps. Is this even the correct approach to do this?
Edit:
I just realized that it's possible to create Amazon CloudWatch events via an API, however, it's called EventBridge... That makes me think I might have missed something in Google Cloud as well. However, I'm still wondering if this is the right approach?
To provide a little more detail on what I want to do:
A user creates an event in the web frontend.
My API function that the frontend calls creates some cloud version of a cronjob that is to be run once at a specific time and date
The job triggers another function that does something with a third party API at the time specified by the user
On Google Cloud, you can deploy your app on serverless services (Cloud Run, Cloud Function or App Engine). Then, you can set up a Cloud Scheduler. Cloud Scheduler can call an HTTP URL and then to trigger you serverless service.
About the API accessibility of Google Cloud services, "All is API". So you can do all what you can on the console or with the GCLOUD cli, with API calls.
I like the friendly interface that AWS Mobile Hub provides to disparate Amazon services, but I'd like to use it to create a web application, rather than a native iOS or Android app.
It's not clear to me how to do so, since there's no option for javascript sample code or any mention of web applications:
Am I missing something? Is there documentation for this use-case elsewhere?
All of the resources that are configured by various features in Mobile Hub (e.g., NoSQL Database, Cloud Logic APIs) are usable directly from a web app in the browser. For example, you can turn on the App Content Delivery feature, enable web hosting on your Amazon S3 bucket, download/copy the AWS JavaScript SDK into your Amazon S3 bucket, and start writing your web app. The JavaScript SDK will allow you to interact with your Mobile Hub resources (found on the "Resources" page in the left Nav menu in Mobile Hub's console).
However, we do realize these steps are tedious and we have had similar feedback from other customers. So, we are actively working to make these steps easier.
In the meantime, you can get the AWS JavaScript SDK here:
https://aws.amazon.com/sdk-for-browser/
And, you may find some of our github samples are a good starting point, like this one:
https://github.com/awslabs/lambda-refarch-webapp
For those looking to build web apps, AWS has a JavaScript library called AWS Amplify that makes building cloud web apps easy: https://aws.github.io/aws-amplify/
I have a java web application running on Tomcat deployed on an EC2 instance. Is there any way I can monitor/set alarms for when the web application goes down or stops responding? Essentially what I would like to do is to check if a HTTP request to the web app responds with status 200. If it does not respond with 200 (for a few times) then it should raise an alarm and send an e-mail to some ops people.
I know there are third party options like Nagois / uptimerobot that I could use but I wanted to know if there are any AWS offerings for this? Is it possible to set up such automated monitoring using AWS Cloud Watch? I could not find a way to do this based on what I read up about Cloud Watch. If this isn't the sort of thing Cloud Watch can handle, then is there another AWS service suited for this?
I think Port Monitoring Feature is available under AWS Beanstalk.
You can consider checking this http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html
Ashutosh,
Ec2 is an IAAS service from AWS and you will not have an AWS offering to monitor your Tomcat server. However, you have custom-built solutions, which I think you are not looking for here.
However, if you are using an Application Load balancer or Beanstalk you get options to trigger alarms.
Yes , you can achieve it through a cloudwatch . collect your logs with a cloudwatch agent and upload it on cloudwatch logstream. below is the reference url for configuring cloudwatch agent.
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html
After that with "create matrix filter" you can set up an email trigger as per your requirements.
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringPolicyE
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Counting404Responses.htmlxamples.html