Posts

Showing posts from March, 2020

Shenandoah GC myth or reality on the production ?

Image
  Hi awesome community,    Today I would like to share with you so small topic about usage Garbage Collectors in production ( GC Strategies ).  At the moment, most popular in Hotspot JVM is  G1 GC , after  CMS   and rising star is  Shenandoah GC .  So in this topic I will describe how to migrate to  Shenandoah GC . If you already on adoptJDK.  And please, keep in your mind that small tutorial related to the  Java 8 , as my instance is not fully ready for new Java. (But please, be informed in your version Java works better and  Shenandoah  significantly improved as well.)    Let’s start.  All, my JDK. JRE used in the located in one place, like /usr/java and use frequently the symbolic links. First of all, I used the latest build from Shipilev’s site builds with shenandoah ( https://builds.shipilev.net/openjdk-shenandoah-jdk8/ ).  wget -c https://builds.shipilev.net/openjdk-shenandoah-jdk8/openjdk-shenandoah-jdk8-latest-linux-x86_64-release.tar.xz Next step is extract into   tar -xvf ope

Jira: Housekeeping or continuous cleanup of the Agile activity artifacts

Image
  Hi awesome community!    So automated housekeeping is good. If you want you can checkout ( Cleanup-Jira-Part-1 ,  Cleanup-Jira-2, ) Today, I would like to share use cases related to the cleanup Agile boards related stuff. So to make the continuous cleanup I just use the groovy code, which is can be run on any app with support groovy like Scriptrunner, myGroovy, Grooviouli.  Let’s start it. Use case #1 : Users are experimenting with Agile boards, own private boards, sometime you do migration. Then once your sprint reports shows incorrectly, where filters shows interesting things. Please, see below screenshot: Action : Let’s remove  Future  Sprint data in Closed issues. String jqlSearch = 'Sprint in futureSprints() and status in (Closed, Done) ' SearchService.ParseResult parseResult = searchService.parseQuery(loggedInUser, jqlSearch) if (parseResult.isValid()) { def searchResult = searchService.search(loggedInUser, parseResult.getQuery(), PagerFilter.getUnlimitedFilter())

Time to cleanup unknown and incomplete build results. Bamboo

Image
  Hi awesome community,    Time to time we do many reports, also, our Bamboo instance grows so faster.  But we need to provide a high-performance service and make reports based exist build results because DevOps metrics are core for the release management. So let's investigate how we can do a cleanup and reduce our spaghetti code for the report collecting purpose.   1. Let's check what kind of status do we have? Successful, Failed, Unknown ( means Currently running), Unknown - something wrong, Incomplete. 2. I mean the grey one result, if you click you will like this info It's incomplete status.  About the unknown result, no worry it will not be removed if it's currently running a job. You can test and further investigate using that article: https://confluence.atlassian.com/bamkb/how-to-find-currently-running-jobs-900800506.html   3. How we can remove build result ?  Use that path for remove build result.   /build/admin/deletePlanResults.action You can check a full meth