<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Akshat Sharma</title>
    <description>The latest articles on Forem by Akshat Sharma (@shrmaky).</description>
    <link>https://forem.com/shrmaky</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F306334%2F77953e00-acc4-4b8b-96b9-b469212a1ac1.jpeg</url>
      <title>Forem: Akshat Sharma</title>
      <link>https://forem.com/shrmaky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shrmaky"/>
    <language>en</language>
    <item>
      <title>Why let was introduced in Javascript</title>
      <dc:creator>Akshat Sharma</dc:creator>
      <pubDate>Thu, 16 Apr 2020 16:43:10 +0000</pubDate>
      <link>https://forem.com/shrmaky/why-let-was-introduced-in-javascript-1caf</link>
      <guid>https://forem.com/shrmaky/why-let-was-introduced-in-javascript-1caf</guid>
      <description>&lt;p&gt;See this code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use strict
function f() {
  if (true) {
    var x = 1
  }
  return x
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Try to run this function, and it will return '1'&lt;/p&gt;

&lt;p&gt;Now see this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use strict
function f() {
  if (true) {
    let x = 1
  }
  return x
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Try to run this function, and it will throw error.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Logically anything scoped inside if shouldn't be accessible outside, but 'var' was accessible outside, thats why in ECMA2015 JS introduced 'let' to achieve this.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Are you Logging your applications RIGHT?</title>
      <dc:creator>Akshat Sharma</dc:creator>
      <pubDate>Thu, 16 Apr 2020 06:18:49 +0000</pubDate>
      <link>https://forem.com/shrmaky/are-you-logging-your-applications-right-l4g</link>
      <guid>https://forem.com/shrmaky/are-you-logging-your-applications-right-l4g</guid>
      <description>&lt;h1&gt;
  
  
  Log Management &amp;amp; Monitoring
&lt;/h1&gt;

&lt;p&gt;This document is the baseline for setting up the strategy for Logging &amp;amp; Monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
What to Log

&lt;ul&gt;
&lt;li&gt;Basics&lt;/li&gt;
&lt;li&gt;Events to Log&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
How to Log

&lt;ul&gt;
&lt;li&gt;Actionable's&lt;/li&gt;
&lt;li&gt;Log Management&lt;/li&gt;
&lt;li&gt;Security Aspects In Details&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Roles &amp;amp; Responsibilities

&lt;ul&gt;
&lt;li&gt;Log types&lt;/li&gt;
&lt;li&gt;What to never log&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Next ToDo’s

&lt;ul&gt;
&lt;li&gt;Select Logging Framework for Frontend/Backend/Infra etc&lt;/li&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to Log
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Only log what Legislation allowed

&lt;ul&gt;
&lt;li&gt;Example GDPR&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Maintaining Confidentiality | Only Public Records

&lt;ul&gt;
&lt;li&gt;Password &amp;amp; Encryption Keys&lt;/li&gt;
&lt;li&gt;Payment Details&lt;/li&gt;
&lt;li&gt;Detailed System Information etc&lt;/li&gt;
&lt;li&gt;Information exposure through Error Messages&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Sufficient Logging | NOT Logging Everything

&lt;ul&gt;
&lt;li&gt;CWE-779 Logging Excessive Data&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Optimization Strategy: Right set of Training &amp;amp; Utilization

&lt;ul&gt;
&lt;li&gt;Not Determining what to monitor &amp;amp; how&lt;/li&gt;
&lt;li&gt;Right Training &amp;amp; Documentation&lt;/li&gt;
&lt;li&gt;Putting right practice for Alerting&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Events to Log:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Authentication Events

&lt;ul&gt;
&lt;li&gt;All Success &amp;amp; Failure&lt;/li&gt;
&lt;li&gt;Building a security policy&lt;/li&gt;
&lt;li&gt;Access control violations&lt;/li&gt;
&lt;li&gt;Incorrect Logins&lt;/li&gt;
&lt;li&gt;Policy for Internal Employees&lt;/li&gt;
&lt;li&gt;User Authentication(Failed/Reset/Successful) for all services including k8, Applications, Internal Systems&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Authorization Events

&lt;ul&gt;
&lt;li&gt;Failure of Tokens &amp;amp; Internal Access Violation&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Application Errors

&lt;ul&gt;
&lt;li&gt;All Application Errors&lt;/li&gt;
&lt;li&gt;Startup &amp;amp; Shutdown Events&lt;/li&gt;
&lt;li&gt;Configuration Changes&lt;/li&gt;
&lt;li&gt;Application State Information&lt;/li&gt;
&lt;li&gt;Input &amp;amp; Output validation(maintaining signal to noise ratio)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Log
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Actionable's
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deciding where to record log files

&lt;ul&gt;
&lt;li&gt;Local Logs(Not a good practice)&lt;/li&gt;
&lt;li&gt;Not to log locally, but if its required, log in separate partition &amp;amp; enable access control.&lt;/li&gt;
&lt;li&gt;Access Control&lt;/li&gt;
&lt;li&gt;Logging Remotely or Centralized Log-Server

&lt;ul&gt;
&lt;li&gt;Full Encryption&lt;/li&gt;
&lt;li&gt;Access Control Mechanism&lt;/li&gt;
&lt;li&gt;Integrity Checks for Log Files&lt;/li&gt;
&lt;li&gt;Fail-over system&lt;/li&gt;
&lt;li&gt;Setting up regular backups&lt;/li&gt;
&lt;li&gt;Adding alerting&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Format of log files

&lt;ul&gt;
&lt;li&gt;Metadata requirements&lt;/li&gt;
&lt;li&gt;what has happened&lt;/li&gt;
&lt;li&gt;when it happened

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/easyread/understanding-about-rfc-3339-for-datetime-formatting-in-software-engineering-940aa5d5f68a"&gt;timestamp with Timezone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;source&lt;/li&gt;
&lt;li&gt;destination&lt;/li&gt;
&lt;li&gt;Synchronize Time Sources&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;where it happened

&lt;ul&gt;
&lt;li&gt;source address&lt;/li&gt;
&lt;li&gt;originating source(ipv4/ipv6)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;who is responsible for the action

&lt;ul&gt;
&lt;li&gt;Logged on/Attempting User&lt;/li&gt;
&lt;li&gt;Unique identifier&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tools.ietf.org/html/rfc5424"&gt;Standard Logging Format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Timestamp&lt;/li&gt;
&lt;li&gt;Encoding - UTF8&lt;/li&gt;
&lt;li&gt;Severity Levels(Standards)

&lt;ul&gt;
&lt;li&gt;0 - Emergency - System crash&lt;/li&gt;
&lt;li&gt;1 - Alert - action must be taken&lt;/li&gt;
&lt;li&gt;2 - Critical - critical condition such as load&lt;/li&gt;
&lt;li&gt;3 - error - error conditions&lt;/li&gt;
&lt;li&gt;4 - warning&lt;/li&gt;
&lt;li&gt;5 - Notice&lt;/li&gt;
&lt;li&gt;6 - Informational&lt;/li&gt;
&lt;li&gt;7 - Debug&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Handling Personal Data

&lt;ul&gt;
&lt;li&gt;Encrypting Personal Data&lt;/li&gt;
&lt;li&gt;Pseudonymization(Privacy Enhancing Techniques)&lt;/li&gt;
&lt;li&gt;Consulting Legal&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Log Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Log Aggregation

&lt;ul&gt;
&lt;li&gt;Consolidate Duplicate Events&lt;/li&gt;
&lt;li&gt;Add Structure to the Docs&lt;/li&gt;
&lt;li&gt;Remove sensitive Data through filters&lt;/li&gt;
&lt;li&gt;Pseudonymization&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Input validation(XSS also possible in log files)&lt;/li&gt;
&lt;li&gt;Encoding(Safeguard against injection attacks)&lt;/li&gt;
&lt;li&gt;Filtering&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Log Analyzing

&lt;ul&gt;
&lt;li&gt;Baselining&lt;/li&gt;
&lt;li&gt;Anomaly Detection&lt;/li&gt;
&lt;li&gt;Attack Signatures&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Log Archiving&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security Aspects In Details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Information exposure through Error Messages&lt;/li&gt;
&lt;li&gt;Unsuccessful login attempts should be monitored&lt;/li&gt;
&lt;li&gt;Never, ever log credentials, passwords or any sensitive information.&lt;/li&gt;
&lt;li&gt;Detecting Network Intrusion&lt;/li&gt;
&lt;li&gt;ELK Login to be Employee should be strong &amp;amp; unique password to prevent&lt;/li&gt;
&lt;li&gt;Following OWASP Top-10&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Roles &amp;amp; Responsibilities
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;IT Leadership

&lt;ul&gt;
&lt;li&gt;Assigning responsibilities&lt;/li&gt;
&lt;li&gt;Tools &amp;amp; Trainings&lt;/li&gt;
&lt;li&gt;Incident response&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Software/DevOps Lead

&lt;ul&gt;
&lt;li&gt;Defining what to log &amp;amp; monitor. (Generally this happens in after Planning phase)&lt;/li&gt;
&lt;li&gt;Clear Documentation&lt;/li&gt;
&lt;li&gt;Common Format of log files&lt;/li&gt;
&lt;li&gt;Optimization or tweaking monitoring during operational phase&lt;/li&gt;
&lt;li&gt;Maintaining the policy&lt;/li&gt;
&lt;li&gt;Action on Log&lt;/li&gt;
&lt;li&gt;Adding Logging/Monitoring to release notes &amp;amp; continuously monitoring behaviour in production&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;DevOps

&lt;ul&gt;
&lt;li&gt;Defining Response strategy&lt;/li&gt;
&lt;li&gt;Setting up Infra &amp;amp; Enabling&lt;/li&gt;
&lt;li&gt;Common Format of log files&lt;/li&gt;
&lt;li&gt;Continuous Monitoring &amp;amp; Alerting&lt;/li&gt;
&lt;li&gt;Verifying Pattern such as continuous login attempts&lt;/li&gt;
&lt;li&gt;Defining Response strategy&lt;/li&gt;
&lt;li&gt;Reporting policy violations&lt;/li&gt;
&lt;li&gt;Generating regular reports&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Legal Department

&lt;ul&gt;
&lt;li&gt;Validating the information logged &amp;amp; stored in database&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Log types
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Application logs[http request/response log, application level error
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'id'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'unique&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;tracing'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'req'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//Generated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Logger&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'res':&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//Generated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Logger&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'level':'error'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'message':'There&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;an&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;error'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'timestamp':&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="mi"&gt;2016-06-12&lt;/span&gt;&lt;span class="err"&gt;T&lt;/span&gt;&lt;span class="mi"&gt;05&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="err"&gt;'timezone':&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'Pacific/Auckland'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;'context':'exception&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;trace'&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.npmjs.com/package/express-winston"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;db log [query,error]
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"severity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"component"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"dbStats"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//Generated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Logger&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"serverStatus"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//Generated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Logger&lt;/span&gt;&lt;span class="w"&gt; 
     &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;container level log
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"container"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; 
       &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
         &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="err"&gt;ecs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://demo.elastic.co/app/kibana#/dashboard/19e7fae0-92a6-11e8-8fa2-3d5f811fbd0f"&gt;See the demo for reference&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What to never log
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Customer Confidential Information&lt;/li&gt;
&lt;li&gt;Payment Records such as Credit Card&lt;/li&gt;
&lt;li&gt;Banking Information&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.datadoghq.com/blog/monitoring-mean-stack-applications-with-datadog/"&gt;https://www.datadoghq.com/blog/monitoring-mean-stack-applications-with-datadog/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Database Logs

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.mongodb.com/manual/reference/command/serverStatus/#server-status-locks"&gt;https://docs.mongodb.com/manual/reference/command/serverStatus/#server-status-locks&lt;/a&gt;
-&lt;a href="https://docs.mongodb.com/manual/reference/command/dbStats/#dbcmd.dbStats"&gt;https://docs.mongodb.com/manual/reference/command/dbStats/#dbcmd.dbStats&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;K8 Logging

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://itnext.io/logging-best-practices-for-kubernetes-using-elasticsearch-fluent-bit-and-kibana-be9b7398dfee"&gt;https://itnext.io/logging-best-practices-for-kubernetes-using-elasticsearch-fluent-bit-and-kibana-be9b7398dfee&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pimterry/loglevel"&gt;&lt;/a&gt;&lt;a href="https://github.com/pimterry/loglevel"&gt;https://github.com/pimterry/loglevel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@davidmcintosh/winston-a-better-way-to-log-793ac19044c5"&gt;&lt;/a&gt;&lt;a href="https://medium.com/@davidmcintosh/winston-a-better-way-to-log-793ac19044c5"&gt;https://medium.com/@davidmcintosh/winston-a-better-way-to-log-793ac19044c5&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/questions/5817738/how-to-use-log-levels-in-java"&gt;&lt;/a&gt;&lt;a href="https://stackoverflow.com/questions/5817738/how-to-use-log-levels-in-java"&gt;https://stackoverflow.com/questions/5817738/how-to-use-log-levels-in-java&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.papertrailapp.com/best-practices-for-logging-in-nodejs/"&gt;&lt;/a&gt;&lt;a href="https://blog.papertrailapp.com/best-practices-for-logging-in-nodejs/"&gt;https://blog.papertrailapp.com/best-practices-for-logging-in-nodejs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trentm/node-bunyan#readme"&gt;&lt;/a&gt;&lt;a href="https://github.com/trentm/node-bunyan#readme"&gt;https://github.com/trentm/node-bunyan#readme&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/containerum/4-tools-to-monitor-your-kubernetes-cluster-efficiently-ceaf62818eea"&gt;&lt;/a&gt;&lt;a href="https://medium.com/containerum/4-tools-to-monitor-your-kubernetes-cluster-efficiently-ceaf62818eea"&gt;https://medium.com/containerum/4-tools-to-monitor-your-kubernetes-cluster-efficiently-ceaf62818eea&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.coinbase.com/logs-metrics-and-the-evolution-of-observability-at-coinbase-13196b15edb7"&gt;&lt;/a&gt;&lt;a href="https://blog.coinbase.com/logs-metrics-and-the-evolution-of-observability-at-coinbase-13196b15edb7"&gt;https://blog.coinbase.com/logs-metrics-and-the-evolution-of-observability-at-coinbase-13196b15edb7&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/easyread/understanding-about-rfc-3339-for-datetime-formatting-in-software-engineering-940aa5d5f68a"&gt;&lt;/a&gt;&lt;a href="https://medium.com/easyread/understanding-about-rfc-3339-for-datetime-formatting-in-software-engineering-940aa5d5f68a"&gt;https://medium.com/easyread/understanding-about-rfc-3339-for-datetime-formatting-in-software-engineering-940aa5d5f68a&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webilicious.xyz/utilizing-winston-to-log-node-js-applications/"&gt;&lt;/a&gt;&lt;a href="https://webilicious.xyz/utilizing-winston-to-log-node-js-applications/"&gt;https://webilicious.xyz/utilizing-winston-to-log-node-js-applications/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Security

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/"&gt;https://attack.mitre.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/"&gt;https://cwe.mitre.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/data/definitions/778.html"&gt;https://cwe.mitre.org/data/definitions/778.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/data/definitions/223.html"&gt;https://cwe.mitre.org/data/definitions/223.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/data/definitions/209.html"&gt;https://cwe.mitre.org/data/definitions/209.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/data/definitions/779.html"&gt;https://cwe.mitre.org/data/definitions/779.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>logging</category>
      <category>react</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Developer Daily Jokes - 1</title>
      <dc:creator>Akshat Sharma</dc:creator>
      <pubDate>Wed, 15 Apr 2020 17:27:58 +0000</pubDate>
      <link>https://forem.com/shrmaky/developer-stories-1-584o</link>
      <guid>https://forem.com/shrmaky/developer-stories-1-584o</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s----foN2-7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ln8rrly2s2luq309xoj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s----foN2-7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ln8rrly2s2luq309xoj9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jokes</category>
      <category>startup</category>
    </item>
    <item>
      <title>Scalable Open Source Tech Stack...</title>
      <dc:creator>Akshat Sharma</dc:creator>
      <pubDate>Sat, 11 Apr 2020 04:35:30 +0000</pubDate>
      <link>https://forem.com/shrmaky/scalable-open-source-tech-stack-336h</link>
      <guid>https://forem.com/shrmaky/scalable-open-source-tech-stack-336h</guid>
      <description>&lt;p&gt;The software engineering world is changing at a rapid pace.&lt;/p&gt;

&lt;p&gt;The idea is simple - Bring customers, giving them space to explore &amp;amp; finally call to action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why technology matters?&lt;/strong&gt;&lt;br&gt;
Battle in the technology space is on who can do this at scale, at scale means, something like handling "Cyber Monday" without warning/readiness.&lt;/p&gt;

&lt;p&gt;Always remember, great things are done by great people&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building Developers Ecosystem:&lt;/strong&gt;&lt;br&gt;
To build a great technology base, we should spend a lot of time in culture &amp;amp; communication. And with the growing powers of open source community, the technologists are penetrating almost every available space possible to automate. We really invest a lot of time in this area, and yes we are hiring.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--otav33Qd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gggr9i2xc9ixxjjsmbvd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--otav33Qd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gggr9i2xc9ixxjjsmbvd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Take a break here if you are not at all familiar with Software Development. In the next self explanatory section, am introducing the open-source tools/tech for building modern web.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dKa1Xsx---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ayonmep23q0d05x0vsfp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dKa1Xsx---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ayonmep23q0d05x0vsfp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WSMii7bc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x5zht0pvu4qf6e5q0ilw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WSMii7bc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x5zht0pvu4qf6e5q0ilw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DevOps:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C6JBA--5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/88jldg86rlqu68mz8z7r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C6JBA--5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/88jldg86rlqu68mz8z7r.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation Testing:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3qiZRI5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8dhizjtd6fd5ppjotrr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3qiZRI5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8dhizjtd6fd5ppjotrr9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Processing:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MhZW_ENB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nyoflau74hyrz63c84d3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MhZW_ENB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nyoflau74hyrz63c84d3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PS: Most of tools/tech are based on my hands-on experience. The three dots on the title is self explanatory that this will continue to advance rapidly. Feel free to DM me or write in comment if any addition/modification can help community.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>startup</category>
      <category>devrel</category>
    </item>
  </channel>
</rss>
