<?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: IsmaelMartinez</title>
    <description>The latest articles on Forem by IsmaelMartinez (@ismaelmartinez).</description>
    <link>https://forem.com/ismaelmartinez</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%2F259511%2F577bcab0-1ec1-4794-bd48-0fd35df3bb92.png</url>
      <title>Forem: IsmaelMartinez</title>
      <link>https://forem.com/ismaelmartinez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ismaelmartinez"/>
    <language>en</language>
    <item>
      <title>Making Data Visualisations Audible</title>
      <dc:creator>IsmaelMartinez</dc:creator>
      <pubDate>Tue, 06 Jan 2026 18:15:57 +0000</pubDate>
      <link>https://forem.com/ismaelmartinez/making-data-visualisations-audible-257b</link>
      <guid>https://forem.com/ismaelmartinez/making-data-visualisations-audible-257b</guid>
      <description>&lt;p&gt;Originally published on &lt;a href="https://medium.com/@ismaelmartinez/making-data-visualisations-audible-08df20b7f1cd" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  A 10-year-old hackathon idea finally comes to life
&lt;/h1&gt;

&lt;p&gt;About 10 years ago, I attended a Web Audio API hackathon, and left with an idea of a side project: what if blind users could “hear” data visualisations?&lt;/p&gt;

&lt;p&gt;Charts are everywhere. Sales dashboards, stock prices, COVID statistics, climate data. For sighted users, a quick glance reveals trends, outliers, and patterns. But for the &lt;a href="https://www.who.int/news-room/fact-sheets/detail/blindness-and-visual-impairment" rel="noopener noreferrer"&gt;2.2 billion people with vision impairments worldwide&lt;/a&gt;, these visualisations are essentially invisible walls.&lt;/p&gt;

&lt;p&gt;Screen readers typically announce that a chart exists, or read values sequentially. That instant understanding that visualisations provide is lost.&lt;/p&gt;

&lt;p&gt;Life got busy, and that hackathon idea sat in my notes for a decade, until now. With the help of AI pair programming, I was able to turn that decade-old idea into a working prototype in a fraction of the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing sound3fy
&lt;/h2&gt;

&lt;p&gt;sound3fy is an open-source library that adds sonification to D3.js visualisations. One line of code makes many charts audible:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;d3.selectAll(".bar").sonify({ pitch: "value" });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It works with existing D3.js charts. No rewrites. No special data formats.&lt;/p&gt;

&lt;p&gt;sound3fy is not intended to replace tables or screen readers, but to complement them by restoring some of the rapid, high-level pattern recognition that sighted users get from charts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How sound3fy works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keyboard navigation: Arrow keys to explore individual data points&lt;/li&gt;
&lt;li&gt;Screen reader support: ARIA live regions announce values&lt;/li&gt;
&lt;li&gt;Pitch mapping: Higher data values play higher notes&lt;/li&gt;
&lt;li&gt;Stereo panning: Position maps to left/right audio channels&lt;/li&gt;
&lt;li&gt;Musical scales: Notes quantized to pleasant scales like pentatonic or major&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://ismaelmartinez.github.io/sound3fy/examples/index.html" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt; (interactive sonified charts)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The demo includes bar charts, line charts, and scatter plots. Try closing your eyes and pressing Play. Can you tell if sales are increasing or decreasing?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why sonification?
&lt;/h2&gt;

&lt;p&gt;Research shows that humans are particularly good at detecting patterns through sound. Rising pitch for trends, rhythm for regularity, and stereo positioning for spatial relationships.&lt;/p&gt;

&lt;p&gt;Studies of sonification tools suggest that blind users can understand trends and comparisons in ways much closer to how sighted users read charts.&lt;/p&gt;

&lt;p&gt;Recent research backs this up. &lt;a href="https://arxiv.org/abs/2403.00717" rel="noopener noreferrer"&gt;A 2024 study from UIUC&lt;/a&gt; found that combining sonification with other modalities helps blind users interpret statistical charts with high accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prior work
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drum.lib.umd.edu/items/66d33f10-0c1c-4028-ba5c-a59729a10daa" rel="noopener noreferrer"&gt;Sonification for accessibility&lt;/a&gt; isn’t new. Highcharts has offered a &lt;a href="https://www.highcharts.com/docs/sonification/getting-started" rel="noopener noreferrer"&gt;sonification module&lt;/a&gt; for years, and tools like &lt;a href="https://twotone.io/" rel="noopener noreferrer"&gt;TwoTone&lt;/a&gt; let anyone turn data into music without code.&lt;/p&gt;

&lt;p&gt;Research tools like &lt;a href="https://github.com/xability/maidr" rel="noopener noreferrer"&gt;MAIDR&lt;/a&gt; have explored multimodal approaches combining sound with braille and natural audio.&lt;/p&gt;

&lt;p&gt;sound3fy aims to bring this capability to the D3.js ecosystem, where many custom visualisations live but accessibility tooling is sparse. &lt;a href="https://www.chart2music.com/docs/" rel="noopener noreferrer"&gt;Chart2Music&lt;/a&gt; is a valid alternative, especially if you aren’t using D3.js for your graphs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical design
&lt;/h2&gt;

&lt;p&gt;sound3fy uses the Web Audio API for low-latency sound generation. Key design decisions include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Musical scales: Raw frequency mapping sounds harsh. Quantizing to pentatonic scales makes the audio pleasant while preserving data relationships.&lt;/li&gt;
&lt;li&gt;D3.js plugin architecture: It should work with any existing D3.js visualisation. No need to rebuild your charts.&lt;/li&gt;
&lt;li&gt;Accessibility-first: Full keyboard navigation, ARIA attributes, focus management, and screen reader announcements are built in.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Looking for feedback
&lt;/h2&gt;

&lt;p&gt;This is an early prototype, and I need feedback, especially from blind and low-vision users. I want to make sure this is genuinely useful, not just well intentioned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the sonification help you understand data?&lt;/li&gt;
&lt;li&gt;Is the keyboard navigation intuitive?&lt;/li&gt;
&lt;li&gt;What is confusing or missing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully it helps bridge that gap on accessibility. If it doesn’t, that’s still useful learning. I hope it sparks a conversation about how we can do better.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/IsmaelMartinez/sound3fy" rel="noopener noreferrer"&gt;https://github.com/IsmaelMartinez/sound3fy&lt;/a&gt;&lt;br&gt;
Install: &lt;code&gt;npm install sound3fy&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you work in accessibility, data visualisation, or know someone who might benefit from this tool, I would love to hear from you.&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>dataviz</category>
      <category>d3</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Automating Kibana Visualisations Generation</title>
      <dc:creator>IsmaelMartinez</dc:creator>
      <pubDate>Thu, 28 Nov 2019 11:23:44 +0000</pubDate>
      <link>https://forem.com/ismaelmartinez/automating-kibana-visualisations-generation-56o4</link>
      <guid>https://forem.com/ismaelmartinez/automating-kibana-visualisations-generation-56o4</guid>
      <description>&lt;p&gt;As a developer, when I find myself doing the same task over and over, I take a step back and consider automation. That is the well known DRY (Don’t Repeat Yourself) principle.&lt;/p&gt;

&lt;p&gt;By taking the effort, you might end up fixing other issues along the way. &lt;/p&gt;

&lt;p&gt;Keeping visualisations and code changes in sync, it’s been one of the most annoying things since I started working with microservices, AWS Lambdas and Kibana.&lt;/p&gt;

&lt;p&gt;Because of that, I have created &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt;. An open source project that tries to help solve that problem.&lt;/p&gt;

&lt;h1&gt;
  
  
  The idea
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt; aims to parse your source code and generates basic, but useful, visualisations.&lt;/p&gt;

&lt;p&gt;You should be able to just stick it into your deployment pipeline and that should keep those basic visualisations up to date.&lt;/p&gt;

&lt;p&gt;There are plenty of tools out there to ship and format your log messages. This tool assumes your logs are in Elastic/Kibana.&lt;/p&gt;

&lt;p&gt;Let’s now look into an example:&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;This piece of code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;logging&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="n"&gt;LOG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;logging&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getLogger&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;lambda_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="n"&gt;LOG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;lambda_handler&lt;/span&gt; &lt;span class="n"&gt;called&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Assuming that you have a message in Kibana with a &lt;code&gt;message&lt;/code&gt; object and the content as “lambda_handler called”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt; will find the message and generate the following visualisation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PfbhxJAe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/f7rczc58l356zw1n89l0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PfbhxJAe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/f7rczc58l356zw1n89l0.png" alt="example visualisation" width="292" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visualisations are grouped depending on the sub-folder, filename and function. &lt;/p&gt;

&lt;p&gt;Finally, it generates a dashboard with all the visualisations.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;You need to follow the next steps in order to get this working.&lt;/p&gt;

&lt;p&gt;Install &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt; from &lt;a href="https://pypi.org/project/logger-to-kibana/"&gt;pipy&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;pip install logger-to-kibana
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Then run:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;logger-to-kibana process_generate_and_send -f &amp;lt;folder&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;That will process all the files under &lt;code&gt;&amp;lt;folder&amp;gt;app/src/**/*.py&lt;/code&gt;, parsing them using RegExp looking for the different log messages in the files.&lt;/p&gt;

&lt;p&gt;Check the &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana/blob/master/README.md#how-does-it-work"&gt;README.md#how-does-it-work&lt;/a&gt; to find more about how does it work. You can also find details about how to change it for your own needs.&lt;/p&gt;

&lt;p&gt;As pointed out before, it splits/group the messages by sub-folder, filename and then function, and generates a metric visualisation for each group.&lt;/p&gt;

&lt;p&gt;The dashboard with all visualisations generated will have the top folder name (that typically is the project name).&lt;/p&gt;
&lt;h1&gt;
  
  
  Closing notes
&lt;/h1&gt;

&lt;p&gt;The main goal was to help identify issues in the code by having visualisations, but it’s already bringing a few extras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifying poor, or even duplicated, log messages&lt;/li&gt;
&lt;li&gt;Improving consistency of log messages&lt;/li&gt;
&lt;li&gt;Synchronising code and visualisations&lt;/li&gt;
&lt;li&gt;Documenting the logs generated by your code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideally, the program will choose the best visualisation depending on the amount of data (and maybe type), but implementing that might take a while.&lt;/p&gt;

&lt;p&gt;I will take the aproach of generating visualisations in other systems like cloudwatch and/or graphana. If that happens maybe I need to change the name to logger-to-graph or something like that. &lt;/p&gt;
&lt;h1&gt;
  
  
  What next 
&lt;/h1&gt;

&lt;p&gt;I will start by explaining the build process. As I have mentioned at the top, I hate repetition and try to embrace automation. Lets start with the CI/CD and how I have archived, in my opinion, a fairly good level of automation in that front.&lt;/p&gt;

&lt;p&gt;But I will take a wee break as I have already done enough for today. More to come! &lt;/p&gt;



&lt;p&gt;You can also pop along and help contribute into the project. ;) &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/IsmaelMartinez"&gt;
        IsmaelMartinez
      &lt;/a&gt; / &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;
        logger-to-kibana
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Parse loggers in your code and generate a kibana visualisation with them
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;logger-to-kibana&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://dev.azure.com/ismaelmartinez0550/logger-to-kibana/_build/latest?definitionId=5&amp;amp;branchName=master" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/24667400243e2001ea7e3707f2cff4cb8d9c1256f9dbf57985d5ab4a636bced0/68747470733a2f2f6465762e617a7572652e636f6d2f69736d61656c6d617274696e657a303535302f6c6f676765722d746f2d6b6962616e612f5f617069732f6275696c642f7374617475732f49736d61656c4d617274696e657a2e6c6f676765722d746f2d6b6962616e613f6272616e63684e616d653d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This project is inteded to generate view from the log messages encountered.&lt;/p&gt;

&lt;p&gt;The python executable can be found in &lt;a href="https://pypi.org/project/logger-to-kibana/" rel="nofollow"&gt;https://pypi.org/project/logger-to-kibana/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will need to install the dependences by running&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pip install -r requirements.txt&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To get the programs help just type:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;python main.py&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This returns:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;  Usage: main.py [OPTIONS] COMMAND [ARGS]...

  Process the file provided according to conditions

Options:
  --help  Show this message and exit.

Commands:
  pommands:
  process                    Process the folder
  process_and_generate       Process the folder and generate visualization
  process_generate_and_send  Process the folder, generate visualization and
                             send&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I have created a dev.to series explaining how this project works and any learning that I have taken from doing so. You can find it in &lt;a href="https://dev.to/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o" rel="nofollow"&gt;https://dev.to/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Default settings&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;The default settings can be found in the &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibanasettings.ini"&gt;settings.ini&lt;/a&gt; file. You can provide a different settings
file by specifying it as an environment variable LOGGER_TO_KIBANA_CONFIG&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;commands&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;The current available commands are:&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;process&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Process a folder and…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
 

</description>
      <category>opensource</category>
      <category>logs</category>
      <category>automation</category>
      <category>kibana</category>
    </item>
    <item>
      <title>Setting up my first OpenSource Python project</title>
      <dc:creator>IsmaelMartinez</dc:creator>
      <pubDate>Thu, 28 Nov 2019 11:23:30 +0000</pubDate>
      <link>https://forem.com/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o</link>
      <guid>https://forem.com/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o</guid>
      <description>&lt;p&gt;In this series, I will explain what I did to set-up my first PyPi project. It’s a bit of a double whammy, it should help people sorting that out, and check with other developer what I did oddly.&lt;/p&gt;

&lt;p&gt;This is also my first python project of my own. I have learned lots but I understand there is plenty of room for error and improvements (hopefully more of the later)&lt;/p&gt;

&lt;p&gt;I will start by explaining the project itself, and the reason for it. You should not need to know it, but it should allow to understand the reasons behind it.&lt;/p&gt;

&lt;p&gt;The project is &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt; and encapsulates the main idea of trying to automate everything.&lt;/p&gt;

&lt;p&gt;It will be too long for a single post so I decided to make it a series.&lt;/p&gt;

&lt;p&gt;It also allows me time to continue improving the process and adding extra functionalities to &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;logger-to-kibana&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;I hope this helps and encourage people to set-up Open Source projects that solves those annoying repetitive tasks.&lt;/p&gt;

&lt;p&gt;As always, I welcome constructive feedback. This is also my first dev post and most of the tools used are new to me. That is one of the reasons to play with them ;) &lt;/p&gt;

&lt;p&gt;Let me know what you think about it. Lets get started with the project itself.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/ismaelmartinez" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--URSL2B6O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F259511%252F577bcab0-1ec1-4794-bd48-0fd35df3bb92.png" alt="ismaelmartinez"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/ismaelmartinez/automating-kibana-visualisations-generation-56o4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Automating Kibana Visualisations Generation&lt;/h2&gt;
      &lt;h3&gt;IsmaelMartinez ・ Nov 28 '19&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#logs&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#automation&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#kibana&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;p&gt;You can also pop along and help contribute into the project. ;)&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/IsmaelMartinez"&gt;
        IsmaelMartinez
      &lt;/a&gt; / &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;
        logger-to-kibana
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Parse loggers in your code and generate a kibana visualisation with them
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;logger-to-kibana&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://dev.azure.com/ismaelmartinez0550/logger-to-kibana/_build/latest?definitionId=5&amp;amp;branchName=master" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/24667400243e2001ea7e3707f2cff4cb8d9c1256f9dbf57985d5ab4a636bced0/68747470733a2f2f6465762e617a7572652e636f6d2f69736d61656c6d617274696e657a303535302f6c6f676765722d746f2d6b6962616e612f5f617069732f6275696c642f7374617475732f49736d61656c4d617274696e657a2e6c6f676765722d746f2d6b6962616e613f6272616e63684e616d653d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This project is inteded to generate view from the log messages encountered.&lt;/p&gt;

&lt;p&gt;The python executable can be found in &lt;a href="https://pypi.org/project/logger-to-kibana/" rel="nofollow"&gt;https://pypi.org/project/logger-to-kibana/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will need to install the dependences by running&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pip install -r requirements.txt&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To get the programs help just type:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;python main.py&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This returns:&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;  Usage: main.py [OPTIONS] COMMAND [ARGS]...

  Process the file provided according to conditions

Options:
  --help  Show this message and exit.

Commands:
  pommands:
  process                    Process the folder
  process_and_generate       Process the folder and generate visualization
  process_generate_and_send  Process the folder, generate visualization and
                             send&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I have created a dev.to series explaining how this project works and any learning that I have taken from doing so. You can find it in &lt;a href="https://dev.to/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o" rel="nofollow"&gt;https://dev.to/ismaelmartinez/setting-up-my-first-opensource-python-project-4k1o&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Default settings&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;The default settings can be found in the &lt;a href="https://github.com/IsmaelMartinez/logger-to-kibanasettings.ini"&gt;settings.ini&lt;/a&gt; file. You can provide a different settings
file by specifying it as an environment variable LOGGER_TO_KIBANA_CONFIG&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;commands&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;The current available commands are:&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;process&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Process a folder and…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/IsmaelMartinez/logger-to-kibana"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
 

</description>
      <category>opensource</category>
      <category>python</category>
      <category>automation</category>
      <category>logs</category>
    </item>
  </channel>
</rss>
