| <!doctype html> |
| <html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-v1.4.x plugin-docs plugin-id-default docs-doc-id-others/contributing"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="generator" content="Docusaurus v2.3.1"> |
| <title data-rh="true">Contributing Guide | HertzBeat</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://hertzbeat.apache.org/img/hertzbeat-logo.svg"><meta data-rh="true" name="twitter:image" content="https://hertzbeat.apache.org/img/hertzbeat-logo.svg"><meta data-rh="true" property="og:url" content="https://hertzbeat.apache.org/docs/v1.4.x/others/contributing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="monitor, apm, 监控, 开源, uptime, opensource"><meta data-rh="true" name="docusaurus_version" content="v1.4.x"><meta data-rh="true" name="docusaurus_tag" content="docs-default-v1.4.x"><meta data-rh="true" name="docsearch:version" content="v1.4.x"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-v1.4.x"><meta data-rh="true" property="og:title" content="Contributing Guide | HertzBeat"><meta data-rh="true" name="description" content="We are committed to maintaining a happy community that helps each other, welcome every contributor to join us!"><meta data-rh="true" property="og:description" content="We are committed to maintaining a happy community that helps each other, welcome every contributor to join us!"><link data-rh="true" rel="icon" href="/img/hertzbeat-logo.svg"><link data-rh="true" rel="canonical" href="https://hertzbeat.apache.org/docs/v1.4.x/others/contributing"><link data-rh="true" rel="alternate" href="https://hertzbeat.apache.org/zh-cn/docs/v1.4.x/others/contributing" hreflang="zh-cn"><link data-rh="true" rel="alternate" href="https://hertzbeat.apache.org/docs/v1.4.x/others/contributing" hreflang="en"><link data-rh="true" rel="alternate" href="https://hertzbeat.apache.org/docs/v1.4.x/others/contributing" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://JMM99UL1H5-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="HertzBeat RSS Feed"> |
| <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="HertzBeat Atom Feed"> |
| <link rel="alternate" type="application/json" href="/blog/feed.json" title="HertzBeat JSON Feed"> |
| |
| |
| |
| <link rel="search" type="application/opensearchdescription+xml" title="HertzBeat" href="/opensearch.xml"> |
| |
| |
| <link rel="icon" href="/img/hertzbeat-logo.svg"> |
| <link rel="manifest" href="/manifest.json"> |
| <meta name="theme-color" content="rgb(234, 90, 7)"> |
| <meta name="apple-mobile-web-app-capable" content="yes"> |
| <meta name="apple-mobile-web-app-status-bar-style" content="#000"> |
| <link rel="apple-touch-icon" href="/img/hertzbeat-logo.svg"> |
| <link rel="mask-icon" href="/img/hertzbeat-logo.svg" color="rgb(234, 90, 7)"> |
| <meta name="msapplication-TileImage" content="/img/hertzbeat-logo.svg"> |
| <meta name="msapplication-TileColor" content="#000"> |
| |
| <script src="https://hm.baidu.com/hm.js?77fb03ed1c6c1267119fec6d84dd88f3" async></script><link rel="stylesheet" href="/assets/css/styles.d9b7538f.css"> |
| <link rel="preload" href="/assets/js/runtime~main.45bcddf9.js" as="script"> |
| <link rel="preload" href="/assets/js/main.0727f393.js" as="script"> |
| </head> |
| <body class="navigation-with-keyboard"> |
| <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus"> |
| <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/hertzbeat-brand.svg" alt="An open source, real-time monitoring tool with custom-monitor and agentLess." class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/hertzbeat-brand.svg" alt="An open source, real-time monitoring tool with custom-monitor and agentLess." class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">HertzBeat</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/">Docs</a><a class="navbar__item navbar__link" href="/blog/">Blog</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Others</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/others/contact">Discuss</a></li><li><a class="dropdown__link" href="/docs/others/developer">Contributors</a></li><li><a class="dropdown__link" href="/docs/others/contributing">Contributor Guide</a></li><li><a href="https://github.com/orgs/apache/projects/6" target="_blank" rel="noopener noreferrer" class="dropdown__link">Kanban<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/docs/others/sponsor">Sponsor</a></li><li><a class="dropdown__link" href="/docs/others/resource">Resource</a></li></ul></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/v1.4.x/">v1.4.x</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/others/contributing">v1.5.x</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/v1.4.x/others/contributing">v1.4.x</a></li><li><a class="dropdown__link" href="/docs/v1.3.x/others/contributing">v1.3.x</a></li><li><a class="dropdown__link" href="/docs/v1.1.x/others/contributing">v1.1.x</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/zh-cn/docs/v1.4.x/others/contributing" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh-cn">中文(中国)</a></li><li><a href="/docs/v1.4.x/others/contributing" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/v1.4.x/">quickstart</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/v1.4.x/advanced/extend-point">custom</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/v1.4.x/template">Monitoring Template</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/v1.4.x/help/guide">help</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/docs/v1.4.x/others/media">Others</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/v1.4.x/others/media">Media Friend</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/v1.4.x/others/developer">Contributors</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/v1.4.x/others/contributing">Contributing Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/v1.4.x/others/contact">Discussion</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/v1.4.x/others/sponsor">Sponsor</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/v1.4.x/others/resource">Related resources</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role="alert"><div>This is documentation for <!-- -->HertzBeat<!-- --> <b>v1.4.x</b>, which is no longer actively maintained.</div><div class="margin-top--md">For up-to-date documentation, see the <b><a href="/docs/others/contributing">latest version</a></b> (<!-- -->v1.5.x<!-- -->).</div></div><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Others</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing Guide</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: v1.4.x</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Contributing Guide</h1></header><blockquote><p>We are committed to maintaining a happy community that helps each other, welcome every contributor to join us!</p></blockquote><h3 class="anchor anchorWithStickyNavbar_LWe7" id="kinds-of-contributions">Kinds of Contributions<a href="#kinds-of-contributions" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><blockquote><p>In the HertzBeat community, there are many ways to contribute:</p></blockquote><ul><li><p>💻<strong>Code</strong>: Can help the community complete some tasks, write new features or fix some bugs;</p></li><li><p>⚠️<strong>Test</strong>: Can come to participate in the writing of test code, including unit testing, integration testing, e2e testing;</p></li><li><p>📖<strong>Docs</strong>: Can write or Documentation improved to help users better understand and use HertzBeat;</p></li><li><p>📝<strong>Blog</strong>: You can write articles about HertzBeat to help the community better promote;</p></li><li><p>🤔<strong>Discussion</strong>: You can participate in the discussion of new features of HertzBeat and integrate your ideas with HertzBeat;</p></li><li><p>💡<strong>Preach</strong>: Can help publicize or promote the HertzBeat community, speak in meetup or summit;</p></li><li><p>💬<strong>Suggestion</strong>: You can also make some suggestions to the project or community to promote the healthy development of the community;</p></li></ul><p>More see <a href="https://allcontributors.org/docs/en/emoji-key" target="_blank" rel="noopener noreferrer">Contribution Types</a></p><p>Even small corrections to typos are very welcome :)</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="getting-hertzbeat-up-and-running">Getting HertzBeat up and running<a href="#getting-hertzbeat-up-and-running" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><blockquote><p>To get HertzBeat code running on your development tools, and able to debug with breakpoints. |
| This is a front-end and back-end separation project. To start the local code, the back-end <a href="https://github.com/dromara/hertzbeat/tree/master/manager" target="_blank" rel="noopener noreferrer">manager</a> and the front-end <a href="https://github.com/dromara/hertzbeat/tree/master/web-app" target="_blank" rel="noopener noreferrer">web-app</a> must be started separately.</p></blockquote><ul><li>Backend start</li></ul><ol><li>Requires <code>maven3+</code>, <code>java11</code> and <code>lombok</code> environments</li><li>(Optional) Modify the configuration file-<code>manager/src/main/resources/application.yml</code></li><li>Start <code>springboot manager</code> service <code>manager/src/main/java/org/dromara/hertzbeat/manager/Manager.java</code></li></ol><ul><li>Front-web start</li></ul><ol><li>Need <code>nodejs npm angular-cli</code> environment</li><li>Install yarn: <code>npm install -g yarn</code></li><li>Execute under the front-end project directory web-app: <code>yarn install</code></li><li>Install angular-cli globally: <code>npm install -g @angular/cli@14 --registry=https://registry.npm.taobao.org</code></li><li>After the local backend is started, start the local frontend in the web-app directory: <code>ng serve --open</code></li><li>Browser access to localhost:4200 to start, default account/password is <em>admin/hertzbeat</em></li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="find-tasks">Find tasks<a href="#find-tasks" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>Find the issue you are interested in! On our GitHub repo issue list, we often publish some issues with the label good first issue or status: volunteer wanted. |
| These issues welcome the help of contributors. Among them, good first issues tend to have low thresholds and are suitable for novices.</p><p>Of course, if you have a good idea, you can also propose it directly on GitHub Discussion or contact with community.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="submit-pull-request">Submit Pull Request<a href="#submit-pull-request" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ol><li>First you need to fork your target <a href="https://github.com/dromara/hertzbeat" target="_blank" rel="noopener noreferrer">hertzbeat repository</a>.</li><li>Then download the code locally with git command:</li></ol><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span><span class="token variable" style="color:#36acaa">${YOUR_USERNAME}</span><span class="token plain">/hertzbeat.git </span><span class="token comment" style="color:#999988;font-style:italic">#Recommended </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ol start="3"><li>After the download is complete, please refer to the getting started guide or README file of the target repository to initialize the project.</li><li>Then, you can refer to the following command to submit the code:</li></ol><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> checkout -b a-feature-branch </span><span class="token comment" style="color:#999988;font-style:italic">#Recommended </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ol start="5"><li>Submit the coed as a commit, the commit message format specification required: <!-- -->[module name or type name]<!-- --> feature or bugfix or doc: custom message.</li></ol><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> </span><span class="token operator" style="color:#393A34"><</span><span class="token plain">modified file/path</span><span class="token operator" style="color:#393A34">></span><span class="token plain"> </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">git</span><span class="token plain"> commit -m </span><span class="token string" style="color:#e3116c">'[docs]feature: necessary instructions'</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">#Recommended </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ol start="6"><li>Push to the remote repository</li></ol><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> push origin a-feature-branch </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ol start="7"><li>Then you can initiate a new PR (Pull Request) on GitHub.</li></ol><p>Please note that the title of the PR needs to conform to our spec, and write the necessary description in the PR to facilitate code review by Committers and other contributors.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="wait-for-the-code-to-be-merged">Wait for the code to be merged<a href="#wait-for-the-code-to-be-merged" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>After submitting the PR, the Committee or the community's friends will review the code you submitted (Code Review), and will propose some modification suggestions or conduct some discussions. Please pay attention to your PR in time.</p><p>If subsequent changes are required, there is no need to initiate a new PR. After submitting a commit on the original branch and pushing it to the remote repository, the PR will be automatically updated.</p><p>In addition, our project has a relatively standardized and strict CI inspection process. After submitting PR, CI will be triggered. Please pay attention to whether it passes the CI inspection.</p><p>Finally, the Committers can merge the PR into the master branch.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="after-the-code-is-merged">After the code is merged<a href="#after-the-code-is-merged" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>After the code has been merged, you can delete the development branch on both the local and remote repositories:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> branch -d a-dev-branch</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">git</span><span class="token plain"> push origin --delete a-dev-branch</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>On the master/main branch, you can do the following to sync the upstream repository:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> upstream https://github.com/dromara/hertzbeat.git </span><span class="token comment" style="color:#999988;font-style:italic">#Bind the remote warehouse, if it has been executed, it does not need to be executed again</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">git</span><span class="token plain"> checkout master </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">git</span><span class="token plain"> pull upstream master</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-become-a-committer">How to become a Committer?<a href="#how-to-become-a-committer" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>With the above steps, you are a contributor to HertzBeat. Repeat the previous steps to stay active in the community, keep at, you can become a Committer!</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="join-discussion">Join Discussion<a href="#join-discussion" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p><a href="https://github.com/dromara/hertzbeat/discussions" target="_blank" rel="noopener noreferrer">Github Discussion</a></p><p>Add WeChat account <code>tan-cloud</code> to pull you into the WeChat group.</p><p>QQ group number <code>630061200</code>, verify code: <code>tancloud</code></p><p>Public WeChat: <code>tancloudtech</code></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="-architecture">🥐 Architecture<a href="#-architecture" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><ul><li><strong><a href="https://github.com/dromara/hertzbeat/tree/master/manager" target="_blank" rel="noopener noreferrer">manager</a></strong> Provide monitoring management, system management basic services.<blockquote><p>Provides monitoring management, monitoring configuration management, system user management, etc.</p></blockquote></li><li><strong><a href="https://github.com/dromara/hertzbeat/tree/master/collector" target="_blank" rel="noopener noreferrer">collector</a></strong> Provide metrics data collection services.<blockquote><p>Use common protocols to remotely collect and obtain peer-to-peer metrics data.</p></blockquote></li><li><strong><a href="https://github.com/dromara/hertzbeat/tree/master/warehouse" target="_blank" rel="noopener noreferrer">warehouse</a></strong> Provide monitoring data warehousing services.<blockquote><p>Metrics data management, data query, calculation and statistics.</p></blockquote></li><li><strong><a href="https://github.com/dromara/hertzbeat/tree/master/alerter" target="_blank" rel="noopener noreferrer">alerter</a></strong> Provide alert service.<blockquote><p>Alarm calculation trigger, monitoring status linkage, alarm configuration, and alarm notification.</p></blockquote></li><li><strong><a href="https://github.com/dromara/hertzbeat/tree/master/web-app" target="_blank" rel="noopener noreferrer">web-app</a></strong> Provide web ui.<blockquote><p>Angular Web UI.</p></blockquote></li></ul><p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/dromara/hertzbeat/home/static/img/docs/hertzbeat-arch.svg" alt="hertzBeat" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/hertzbeat/edit/master/home/versioned_docs/version-v1.4.x/others/contributing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/v1.4.x/others/developer"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Contributors</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/v1.4.x/others/contact"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Discussion</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#kinds-of-contributions" class="table-of-contents__link toc-highlight">Kinds of Contributions</a></li><li><a href="#getting-hertzbeat-up-and-running" class="table-of-contents__link toc-highlight">Getting HertzBeat up and running</a></li><li><a href="#find-tasks" class="table-of-contents__link toc-highlight">Find tasks</a></li><li><a href="#submit-pull-request" class="table-of-contents__link toc-highlight">Submit Pull Request</a></li><li><a href="#wait-for-the-code-to-be-merged" class="table-of-contents__link toc-highlight">Wait for the code to be merged</a></li><li><a href="#after-the-code-is-merged" class="table-of-contents__link toc-highlight">After the code is merged</a></li><li><a href="#how-to-become-a-committer" class="table-of-contents__link toc-highlight">How to become a Committer?</a></li><li><a href="#join-discussion" class="table-of-contents__link toc-highlight">Join Discussion</a></li><li><a href="#-architecture" class="table-of-contents__link toc-highlight">🥐 Architecture</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Introduction</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/start/quickstart">Quickstart</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/help/guide">Help Doc</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/hertzbeat/discussions/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discussion<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/docs/others/contact">Contact</a></li></ul></div><div class="col footer__col"><div class="footer__title">Resource</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/hertzbeat" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/docs/others/resource">Others</a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/apache/hertzbeat" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/hertzbeat-brand.svg" alt="HertzBeat" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/hertzbeat-brand.svg" alt="HertzBeat" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">Copyright © 2024 Apache HertzBeat</div></div></div></footer></div> |
| <script src="/assets/js/runtime~main.45bcddf9.js"></script> |
| <script src="/assets/js/main.0727f393.js"></script> |
| </body> |
| </html> |