페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

Step 2) Add Jira application

Jira 선택

Image RemovedImage Added

Step 3) Import 설정

Image RemovedImage Added

 프로젝트 선택

Image RemovedImage Added

Image RemovedImage Added

import 주기 설정

Image RemovedImage Added

추가 필터 설정

필요한 이슈만 import 하는 설정

Image RemovedImage Added

기타 설정

  • Status and history: 이슈의 상태와 이력을 분석할 경우 선택
  • Time dimension:  시간정보 선택
  • User groups: 사용자 정보 선택
  • Add-on이 생성한 정보 선택


Image RemovedImage Added

Custom fields 설정

아래 이미지에서 선택된 항목과 같이 설정

Image RemovedImage Added

Image RemovedImage Added

Step 4) 보고서 만들기

...

아래 이미지와 같이 좌측에는 Project와 Issue 그리고 상단은 Measures를 배치하여 보고서를 설계한다.

Image Removed

펼치기
titleExported report

{
"cube_name": "Jira",
"cube_reports": [ {
"name": "MOIMSTONE-Report",
"result_view": "table",
"definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Issue Start date]","[Measures].[Issue End date]","[Measures].[\uacc4\ud68d \uc77c\uc218]","[Measures].[\uc9c4\ud589 \uc77c\uc218]","[Measures].[\uc2e4\uc81c\uc9c4\ud589\ub960]","[Measures].[\uacc4\ud68d\uc77c\uc218 (baseline)]","[Measures].[\uacc4\ud68d\uc9c4\ud589\uc77c\uc218 (baseline)]","[Measures].[\uacc4\ud68d\uc9c4\ud589\uc728 (baseline)]","[Measures].[\uc9c0\uc5f0\uc728]"],"members":[]}]},"rows":{"dimensions":[{"name":"Issue","selected_set":["[Issue].[Project].Members"],"members":[],"bookmarked_members":[]}],"nonempty_crossjoin":true},"pages":{"dimensions":[{"name":"Project","selected_set":["[Project].[Project].Members"],"members":[{"depth":1,"name":"(MOIM) DS100-Smart Docking Station \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) DS100-Smart Docking Station \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240006"},{"depth":1,"name":"(MOIM) IP450P-PoE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP450P-PoE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240003"},{"depth":1,"name":"(MOIM) IP450S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP450S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1230001"},{"depth":1,"name":"(MOIM) IP455G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP455G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240002"},{"depth":1,"name":"(MOIM) IP455S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP455S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1230001C"},{"depth":1,"name":"(MOIM) IP460P-POE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP460P-POE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240003B"},{"depth":1,"name":"(MOIM) IP460S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP460S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1230001B"},{"depth":1,"name":"(MOIM) IP460T-BT\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP460T-BT\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240004"},{"depth":1,"name":"(MOIM) IP470G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP470G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240002B"},{"depth":1,"name":"(MOIM) IP470H-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP470H-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1230001D"},{"depth":1,"name":"(MOIM) IP470W-WiFi\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP470W-WiFi\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240005"},{"depth":1,"name":"(MOIM) IP800E-IHD\uc9c0\uc6d0 AI Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP800E-IHD\uc9c0\uc6d0 AI Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240008"},{"depth":1,"name":"(MOIM) IP800S-Basic AI Phone \uc2e0\uaddc\uac1c\ubc1c","full_name":"[Project].[(MOIM) IP800S-Basic AI Phone \uc2e0\uaddc\uac1c\ubc1c]","drillable":true,"key":"M1240007"},{"depth":1,"name":"(MOIM) KT-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120","full_name":"[Project].[(MOIM) KT-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","drillable":true,"key":"M1240009B"},{"depth":1,"name":"(MOIM) LGU+-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120","full_name":"[Project].[(MOIM) LGU+-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","drillable":true,"key":"M1240009"},{"depth":1,"name":"(MOIM) SKBB-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120","full_name":"[Project].[(MOIM) SKBB-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","drillable":true,"key":"M1240009C"},{"depth":1,"name":"(MOIM) \ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120","full_name":"[Project].[(MOIM) \ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","drillable":true,"key":"M1240009"}],"bookmarked_members":[],"current_page_members":["[Project].[(MOIM) DS100-Smart Docking Station \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP450P-PoE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP450S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP455G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP455S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP460P-POE\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP460S-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP460T-BT\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP470G-Giga IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP470H-Basic IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP470W-WiFi\uc9c0\uc6d0 IP Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP800E-IHD\uc9c0\uc6d0 AI Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) IP800S-Basic AI Phone \uc2e0\uaddc\uac1c\ubc1c]","[Project].[(MOIM) KT-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","[Project].[(MOIM) LGU+-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","[Project].[(MOIM) SKBB-\ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]","[Project].[(MOIM) \ud310\ub9e4\uc81c\ud488 \uae30\ub2a5\uac1c\uc120]"]}]},"options":{},"view":{"current":"table","maximized":false,"table":{"cell_formatting":{"[Measures].[\uc9c0\uc5f0\uc728]":[{"min":"0","max":"0.1","background_color":"#89A54E"},{"min":"0.1","max":"0.3","background_color":"#DBC63D"},{"min":"0.3","max":"0.7","background_color":"#DB843D"},{"min":"0.7","max":"1","background_color":"#AA4643"}]}}}}
} ],
"calculated_members": [{"name":"Issue Baseline end date","dimension":"Measures","formula":"[Issue].CurrentHierarchyMember.get('Baseline end date')","format_string":"yyyy-mm-dd","annotations":{"group":"Issue properties"}},{"name":"Issue Baseline start date","dimension":"Measures","formula":"[Issue].CurrentHierarchyMember.get('Baseline start date')","format_string":"yyyy-mm-dd","annotations":{"group":"Issue properties"}},{"name":"Issue End date","dimension":"Measures","formula":"[Issue].CurrentHierarchyMember.get('End date')","format_string":"yyyy-mm-dd","annotations":{"group":"Issue properties"}},{"name":"Issue Progress","dimension":"Measures","formula":"[Issue].CurrentHierarchyMember.get('Progress')","format_string":"#,##0.00","annotations":{"group":"Issue properties"}},{"name":"Issue Start date","dimension":"Measures","formula":"[Issue].CurrentHierarchyMember.get('Start date')","format_string":"yyyy-mm-dd","annotations":{"group":"Issue properties"}},{"name":"\uc9c4\ud589 \uc77c\uc218","dimension":"Measures","formula":"Sum(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \n [Measures].[\uacc4\ud68d \uc77c\uc218] * [Measures].[Issue Progress] \n * 0.01\n\n)","format_string":"#,##0.00"},{"name":"\uacc4\ud68d \uc77c\uc218","dimension":"Measures","formula":"Sum(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \nDateDiffDays([Measures].[Issue Start date] ,\n[Measures].[Issue End date]\n) + 1\n)","format_string":"#,##0"},{"name":"\uc2e4\uc81c\uc9c4\ud589\ub960","dimension":"Measures","formula":"Avg(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0\n), \n \nCASE WHEN [Measures].[\uc9c4\ud589 \uc77c\uc218] = 0\nTHEN\n0\nWHEN [Measures].[\uacc4\ud68d \uc77c\uc218] = 0 \nTHEN\n0\nWHEN [Measures].[\uacc4\ud68d \uc77c\uc218] > 0 AND \n[Measures].[\uc9c4\ud589 \uc77c\uc218] > 0\nTHEN\n [Measures].[\uc9c4\ud589 \uc77c\uc218]\n / [Measures].[\uacc4\ud68d \uc77c\uc218]\nEND\n)","format_string":"#0.00%"},{"name":"\uacc4\ud68d\uc9c4\ud589\uc77c\uc218 (baseline)","dimension":"Measures","formula":"Sum(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n),\n\nCASE WHEN DateBetween(now(), [Measures].[Issue Baseline Start date], [Measures].[Issue Baseline End date]) \nTHEN\nDateDiffDays([Measures].[Issue Baseline Start date], now()) + 1\nWHEN DateBetween([Measures].[Issue Baseline End date], [Measures].[Issue Baseline Start date], now()) \nTHEN\nDateDiffDays([Measures].[Issue Baseline Start date], [Measures].[Issue Baseline End date]) + 1\nEND\n)","format_string":"#,##0.00"},{"name":"\uacc4\ud68d\uc9c4\ud589\uc728 (baseline)","dimension":"Measures","formula":"Avg(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \n \nCASE WHEN [Measures].[\uacc4\ud68d\uc9c4\ud589\uc77c\uc218 (baseline)] = 0\nTHEN\n0\nWHEN [Measures].[\uacc4\ud68d\uc77c\uc218 (baseline)] = 0 \nTHEN\n0\nWHEN [Measures].[\uacc4\ud68d\uc77c\uc218 (baseline)] > 0 AND \n[Measures].[\uacc4\ud68d\uc9c4\ud589\uc77c\uc218 (baseline)] > 0\nTHEN\n [Measures].[\uacc4\ud68d\uc9c4\ud589\uc77c\uc218 (baseline)]\n / [Measures].[\uacc4\ud68d\uc77c\uc218 (baseline)]\nEND\n)","format_string":"#0.00%"},{"name":"\uacc4\ud68d\uc77c\uc218 (baseline)","dimension":"Measures","formula":"Sum(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \nDateDiffDays([Measures].[Issue Baseline Start date] ,\n[Measures].[Issue Baseline End date]\n) + 1\n)","format_string":""},{"name":"\uc9c0\uc5f0\uc728","dimension":"Measures","formula":"Avg(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \n\n([Measures].[\uacc4\ud68d\uc9c4\ud589\uc728 (baseline)] - [Measures].[\uc2e4\uc81c\uc9c4\ud589\ub960])\n)","format_string":"#0.00%"},{"dimension":"Measures","name":"Open issues","format_string":"#,##0","formula":"CASE WHEN [Issue].CurrentMember.Level.Name <> 'Issue' THEN\n Cache(\n NonZero(Sum(PreviousPeriods([Time].CurrentHierarchyMember),\n Cache([Measures].[Issues created]\n - [Measures].[Issues resolved])\n ))\n + [Measures].[Issues created]\n - [Measures].[Issues resolved]\n )\nWHEN [Time].CurrentHierarchyMember IS [Time].CurrentHierarchy.DefaultMember\nTHEN NonZero([Measures].[Issues due])\nELSE\n -- optimized formula for drill through Issue\n NonZero(IIF(\n DateBeforePeriodEnd(\n [Issue].CurrentMember.get('Created at'),\n [Time].CurrentHierarchyMember) AND\n NOT DateBeforePeriodEnd(\n [Issue].CurrentMember.get('Resolved at'),\n [Time].CurrentHierarchyMember),\n ([Time].CurrentHierarchy.DefaultMember,\n [Measures].[Issues created]),\n 0\n ))\nEND","annotations":{"group":"Default"}},{"dimension":"Measures","name":"Average resolution days","format_string":"#,##0.00","formula":"CASE WHEN [Measures].[Issues resolved] > 0 THEN\n [Measures].[Total resolution days] / [Measures].[Issues resolved]\nEND","annotations":{"group":"Default"}},{"name":"project-baseline-enddate-timestamp","dimension":"Measures","formula":"Max(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \nDateToTimestamp([Issue].CurrentHierarchyMember.get('Baseline end date'))\n)","format_string":""},{"name":"\uacc4\ud68d\uc644\ub8cc\uc77c","dimension":"Measures","formula":"TimestampToDate([Measures].[project-baseline-enddate-timestamp])","format_string":"yyyy-mm-dd"},{"name":"project-enddate-timestamp","dimension":"Measures","formula":"Max(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \nDateToTimestamp([Issue].CurrentHierarchyMember.get('End date'))\n)","format_string":""},{"name":"\uc2e4\uc81c\uc644\ub8cc\uc77c","dimension":"Measures","formula":"TimestampToDate([Measures].[project-enddate-timestamp])","format_string":"yyyy-mm-dd"},{"name":"project-baseline-startdate-timestamp","dimension":"Measures","formula":"Min(\nFilter(\n Descendants([Issue].CurrentMember, [Issue].[Issue]),\n [Measures].[Issues created] > 0 \n), \nDateToTimestamp([Issue].CurrentHierarchyMember.get('Baseline start date'))\n)","format_string":""},{"name":"\uc9c0\uc5f0\uc77c %","dimension":"Measures","formula":"CASE WHEN ([Measures].[project-baseline-enddate-timestamp]= \n[Measures].[project-baseline-startdate-timestamp])\nTHEN\n([Measures].[project-enddate-timestamp] - \n[Measures].[project-baseline-enddate-timestamp]) / 86400\nELSE\n([Measures].[project-enddate-timestamp] - \n[Measures].[project-baseline-enddate-timestamp]) / ([Measures].[project-baseline-enddate-timestamp]- \n[Measures].[project-baseline-startdate-timestamp])\nEND","format_string":"#0.00%"}]
}

Image Added

Step 5)  대시보드 생성하기

EazyBI >> Account 이름 >> Dashboards

Image RemovedImage Added

  • 대시보드 이름 정의

Image RemovedImage Added

  • Add report >> 보고서 선택

Image RemovedImage Added

  • 저장하기

Image RemovedImage Added

Step 6) 대시보드 접근 권한 설정

...

  • Add account user 항목에 접근 권한 부여

Image RemovedImage Added

Step 7) 대시보드 열기

EazyBI >> Account 이름 >> Dashboards >> 대시보드 이름

Image RemovedImage Added

Dashboard 소스 수정

EazyBI >> Account 이름 >> Source Data >> Edit

  • Jira 데이터 import를 수정한다.


Image RemovedImage Added

Dashboard 데이터 분석 수정

EazyBI >> Account 이름 >> Report 이름

Image RemovedImage Added