DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

The Latest Monitoring and Observability Topics

article thumbnail
How to Debug and Deploy Apps With MuleSoft Anypoint Studio
MuleSoft Anypoint Studio's StudioVisual Debugger allows you to run your app in debug mode and stop its execution to check the contents of previous building blocks.
Updated March 3, 2017
by Jitendra Bafna
· 29,002 Views · 6 Likes
article thumbnail
Deploying OpenStack on AWS
It might sound like Cloudception, but you can deploy OpenStack over AWS, assuming you handle the various networking problems that will pop up.
February 17, 2017
by Rathinasabapathy Arumugam
· 18,439 Views · 4 Likes
article thumbnail
How to Install MongoDB With Authentication on EC2 AMI Linux
If you have an EC2 instance running and you have root access to this EC2 instance, then you can install MongoDB with authentication on EC2 AMI Linux in eight easy steps.
February 10, 2017
by Cray Styris
· 43,971 Views · 1 Like
article thumbnail
PMM Alerting With Grafana: Working With Templated Dashboards
Grafana 4.0 does not support basic alerting out-of-the-box. Until there's a better option, you need to do alerting based on graphs — which don't use templating.
February 7, 2017
by Peter Zaitsev
· 11,152 Views · 1 Like
article thumbnail
Logging AWS Elastic Beanstalk With ELK
The challenge of logging remains the same in Elastic Beanstalk as in any other environment: Multiple services mean multiple log sources.
February 1, 2017
by Daniel Berman
· 9,958 Views · 3 Likes
article thumbnail
Debugging Multiple Binaries With GDB/Eclipse
Ever need to debug multiple binaries? Say, a library and your app? Not fun. Fortunately, you can use GDB commands, Eclipse, and symbols to make the process easier.
January 26, 2017
by Erich Styger
· 13,951 Views · 2 Likes
article thumbnail
Learning to Read x86 Assembly Language
How does your code talk to the machine? Assembly doesn't have to be only for debugging, but its syntax can be hard to wrap your head around.
January 23, 2017
by Pat Shaughnessy
· 13,866 Views · 2 Likes
article thumbnail
Scheduling Statistics Maintenance in Azure SQL Data Warehouse
You can leverage your Azure SQL Data Warehouse to automate some of your maintenance. Creating a Runbook will let you schedule to your hearts content.
January 23, 2017
by Grant Fritchey
· 4,445 Views · 2 Likes
article thumbnail
Java Performance Monitoring: 5 Open Source Tools You Should Know
Stagemonitor, Pinpoint, MoSKito, Glowroot, and Kamon are all promising open source Java monitoring tools. See where they can be best put to use.
January 19, 2017
by Henn Idan
· 92,809 Views · 39 Likes
article thumbnail
Creating Your Own E-Mail Service With Haraka, PostgreSQL, and AWS S3
There are many paid email services out there that offer various integration features. However, most of the time, they aren’t 100% customizable to one’s requirements.
January 16, 2017
by Thihara Neranjya
· 19,474 Views · 2 Likes
article thumbnail
AWS Lambda Performance and Cold Starts
How do you build fast and resilient functions when many traditional system and application metrics are either unavailable or no longer relevant?
January 13, 2017
by Clay Smith
· 15,430 Views · 2 Likes
article thumbnail
Creating AWS Lambda Functions From Octopus Deployments
Merging continuous deployment and serverless tech is possible. Assuming you've got a pivot machine, you can combine the power of your Octopus deploys and AWS Lambda.
January 12, 2017
by João Rosa
· 9,950 Views · 4 Likes
article thumbnail
Triggering Lambda Functions With an AWS IoT Button
It turns out that it's easy to merge serverless architecture with your IoT projects by having AWS IoT Button trigger an AWS Lambda function.
December 31, 2016
by Arun Gupta
· 14,156 Views · 4 Likes
article thumbnail
Integrate Spring Boot and EC2 Using Cloudformation
Getting your Spring application up and running on top of an EC2 instance is pretty simple.
December 28, 2016
by Emmanouil Gkatziouras DZone Core CORE
· 10,590 Views · 4 Likes
article thumbnail
Server Log Analysis: It's More Important Than Google Analytics
This article discusses the significance of analyzing the server logs. The author also demonstrates a server log dashboard created using the open source ELK Stack of Elasticsearch, Logstash, and Kibana.
December 23, 2016
by Samuel Scott
· 16,154 Views · 8 Likes
article thumbnail
Making Spring Boot Applications Run Serverless With AWS
Forget the cloud, it's time to go serverless. Using AWS Lambda and API Gateway can reduce costs and overhead, and it's easy to get your Spring Boot app running on it.
December 18, 2016
by $$anonymous$$
· 40,095 Views · 14 Likes
article thumbnail
An Overview of Meta-Monitoring
Meta-monitoring is basically self-service for monitoring. There are several different requirements and methods that should be kept in mind when it comes to meta-monitoring.
December 15, 2016
by Thomas Kurian Theakanath
· 5,937 Views · 2 Likes
article thumbnail
ConcurrentHashMap isn't always enough
When Java developers come to a task of writing a a new class which should have a Map datastructure field, accessed simultaneously by several threads, they usually try to solve the synchronization issues invloved in such a scenario by simply making the map an instance of ConcurrentHashMap . public class Foo { private Map theMap = new ConcurrentHashMap<>(); // the rest of the class goes here... } In many cases it works fine just because the contract of ConcurrentHashMap takes care of the potential synchronization issues related to reading/writing to the map. But there are cases where it's not enough, and a developer gets race conditions which are hard to predict, and even harder to find/debug and fix. Let's have a look, at the next example: public class Foo { private Map theMap = new ConcurrentHashMap<>(); public Object getOrCreate(String key) { Object value = theMap.get(key); if (value == null) { value = new Object(); theMap.put(key, value); } return value; } } Here we have a "simple" getter ( getOrCreate(String key) ), which gets a key and returns the value assosiated with the given key in theMap . If there is no mapping for the key, the method creates a new value, inserts it into theMap and returns it. So far so good. But what happens when 2 (or more) threads call the getter with the same key when there is no mapping for the key in theMap? In such a case we might receive a race condition: Suppose thread t1 enters the function and comes to line 7. Its value is null . At this point thread t2 enters the function and also comes to line 7. Its value is also obviously null . Therefore from this point the two threads will enter the if statement and execute lines 8 and 9, thus creating two different new Objects. Upon returning from the getter each thread will get a different Object instance, violating programmer's wrong assumption that by using ConcurrentHashMap "everything is synchronized" and therefore two different threads should get the same value for the same key. To solve this issue we can synchronize the entire method, thus making it atomic: public class Foo { private Map theMap = new ConcurrentHashMap<>(); public synchronized Object getOrCreate(String key) { Object value = theMap.get(key); if (value == null) { value = new Object(); theMap.put(key, value); } return value; } } But this is a bit ugly, and uses Foo instace's monitor, which may affect performance if there are other methods in this class which are synchronized. Also a common rule of thumb is to try to eliminate using synchronized methods as much as possible. A much better approach should be using Java 8 Map's computeIfAbsent(K key, Function mappingFunction), which, in ConcurrentHashMap's implementation runs atomically: public class Foo { private Map theMap = new ConcurrentHashMap<>(); public Object getOrCreate(String key) { return theMap.computeIfAbsent(key, k -> new Object()); } } The atomicity of computeIfAbsent(..) assures that only one new Object will be created and put into theMap, and it'll be the exact same instance of Object that will be returned to all threads calling the getOrCreate function. Here, not only the code is correct, it's also cleaner and much shorter. The point of this example was to introduce a common pitfall of blindly relying on ConcurrentHashMap as a majical synchronzed datastructure which is threadsafe and therefore should solve all our concurrency issues regarding multiple threads working on a shared Map. ConcurrentHashMap is, indeed, threadsafe. But it only means that all read/write operations on such map are internally synchronized. And sometimes it's just not enough for our concurrent environment needs, and we have to use some special treatment which will guarantee atomic execution. A good practice will be to use one of the atomic methods implemented by ConcurrentHashMap, i.e: computeIfAbsent(..), putIfAbsent(..), etc.
December 8, 2016
by Dima Leah
· 48,768 Views · 12 Likes
article thumbnail
Camel and Kura: Providing Telemetry Data as OPC UA
If you're using an industrial M2M protocol, consider the combined power of Camel and Kura to get your telemetry data squared away as OPC UA.
November 29, 2016
by Jens Reimann
· 6,043 Views · 3 Likes
article thumbnail
Logging Docker Containers With AWS Cloudwatch
This post describes how to set up the integration between Docker and AWS and then establish a pipeline of logs from CloudWatch into the ELK Stack.
November 28, 2016
by Daniel Berman
· 10,046 Views · 3 Likes
  • Previous
  • ...
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • ...
  • Next
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook
×