$lang['tuto'] = "ઉપશામકો"; ?> કસ્ટમ હેડરોમાંથી

કસ્ટમ હેડરોમાંથી નિશાનો પ્રચાર કરવા માટે વસંત બુટ 3.4 નો ઉપયોગ કેવી રીતે કરવો

Temp mail SuperHeros
કસ્ટમ હેડરોમાંથી નિશાનો પ્રચાર કરવા માટે વસંત બુટ 3.4 નો ઉપયોગ કેવી રીતે કરવો
કસ્ટમ હેડરોમાંથી નિશાનો પ્રચાર કરવા માટે વસંત બુટ 3.4 નો ઉપયોગ કેવી રીતે કરવો

વસંત બુટમાં વૈવિધ્યપૂર્ણ હેડર ટ્રેસને હેન્ડલ કરવું 3.4

કલ્પના કરો કે તમારી પાસે સ્પ્રિંગ બૂટ 3.4 વેબ સેવા બે ક્લાયન્ટ્સ સાથે એકીકૃત રીતે કામ કરે છે. પ્રથમ ક્લાયંટ સ્પ્રિંગ બૂટ 3+ નો ઉપયોગ કરે છે, જે ટ્રેસ પ્રચારને એક પવન બનાવે છે. કોઈપણ વધારાના પ્રયત્નો વિના, તમને સુંદર એન્ડ-ટુ-એન્ડ ટ્રેસ સાતત્ય 🪄 મળે છે. લોગ્સ સ્વચ્છ અને જોડાયેલા દેખાય છે, જાણે જાદુ દ્વારા.

જો કે, જ્યારે ક્લાયન્ટ ટુ અમલમાં આવે છે ત્યારે વસ્તુઓ એક વળાંક લે છે. માનક ટ્રેસીંગ હેડરને બદલે, તેઓ `ot-custom-traceid` અને `ot-custom-spanid` જેવા કસ્ટમ હેડરો મોકલે છે. જ્યારે આ કસ્ટમ હેડરો માન્ય ટ્રેસ માહિતી ધરાવે છે, ત્યારે સ્પ્રિંગ બૂટ આ નિશાનોનો પ્રચાર કરવામાં નિષ્ફળ જાય છે. પરિણામ? તમે સર્વર-સાઇડ લૉગ્સ સાથે ક્લાયંટ ટ્રેસને કનેક્ટ કરવાની ક્ષમતા ગુમાવો છો.

આ અવલોકનક્ષમતા ગેપ બનાવે છે. ક્લાયંટ એક માટે, તમે સમગ્ર સેવાઓમાં વિનંતીનો સંપૂર્ણ માર્ગ જુઓ છો. ક્લાયન્ટ બે માટે, તમે ફક્ત સર્વર-સાઇડ લૉગ્સ જુઓ છો, જરૂરી ક્લાયન્ટ ટ્રેસ ખૂટે છે. તે અડધી કોયડો જોવા જેવું છે—તમે જાણો છો કે કંઈક ખૂટે છે પરંતુ ટુકડાઓ એકસાથે મૂકી શકતા નથી. 😓

આ લેખમાં, અમે સ્પ્રિંગ બૂટ 3.4 ઇકોસિસ્ટમમાં સાચા રહીને સ્પ્રિંગ ક્લાઉડ સ્લ્યુથ પર આધાર રાખ્યા વિના આ સમસ્યાને કેવી રીતે હલ કરવી તે વિશે અન્વેષણ કરીશું. અંત સુધીમાં, તમે જાણી શકશો કે કેવી રીતે કસ્ટમ હેડરોમાંથી ટ્રેસનો પ્રચાર કરવો અને ચાલુ રાખવું, તમારી સમગ્ર સિસ્ટમમાં સીમલેસ અવલોકનક્ષમતા સુનિશ્ચિત કરવી.

આદેશ ઉપયોગનું ઉદાહરણ
MDC.put આ આદેશ મેપ્ડ ડાયગ્નોસ્ટિક કોન્ટેક્સ્ટ (MDC) માં કી-વેલ્યુ જોડી ઉમેરે છે, કસ્ટમ ટ્રેસ ID ને લોગમાં સમાવવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, MDC.put("traceId", "12345").
MDC.clear વિનંતીઓ વચ્ચેના દૂષણને ટાળવા માટે વિનંતી પર પ્રક્રિયા કર્યા પછી MDC માંથી બધી એન્ટ્રીઓ સાફ કરે છે. ઉદાહરણ તરીકે, MDC.clear().
OncePerRequestFilter સ્પ્રિંગ બૂટ ફિલ્ટર કે જે ખાતરી કરે છે કે ફિલ્ટર લોજિક HTTP વિનંતી દીઠ માત્ર એક જ વાર ચલાવવામાં આવે છે, હેડરોને ટ્રેસ કરવા માટે આદર્શ છે. ઉદાહરણ: પબ્લિક ક્લાસ CustomTraceFilter OnePerRequestFilter ને વિસ્તૃત કરે છે.
filterChain.doFilter અન્ય ફિલ્ટર્સ દ્વારા વિનંતી ચાલુ રહે તેની ખાતરી કરીને, સાંકળમાં આગલા ફિલ્ટર પર જાઓ. ઉદાહરણ તરીકે, filterChain.doFilter(વિનંતી, પ્રતિભાવ).
RestTemplate.getInterceptors() RestTemplate ઉદાહરણ માટે ઇન્ટરસેપ્ટર્સની સૂચિ પુનઃપ્રાપ્ત કરે છે, કસ્ટમ ઇન્ટરસેપ્ટર્સ ઉમેરવાની મંજૂરી આપે છે. ઉદાહરણ: restTemplate.getInterceptors().add(new CustomInterceptor()).
ClientHttpRequestInterceptor આઉટગોઇંગ HTTP વિનંતીઓને અટકાવવા અને કસ્ટમ હેડરો ઉમેરવા માટેનું ઇન્ટરફેસ. ઉદાહરણ તરીકે, ટ્રેસ ID દાખલ કરવા માટે ClientHttpRequestInterceptor ને અમલમાં મૂકવું.
HttpServletRequest.getHeader આવનારી વિનંતિમાંથી ચોક્કસ HTTP હેડરનું મૂલ્ય કાઢે છે. ઉદાહરણ: request.getHeader("ot-custom-traceid").
FilterRegistrationBean સ્પ્રિંગ બૂટ એપ્લિકેશનમાં કસ્ટમ ફિલ્ટર્સની નોંધણી કરે છે. ઉદાહરણ તરીકે: registrationBean.setFilter(new CustomTraceFilter()).
MockMvc.perform સ્પ્રિંગ બૂટ એપ્લિકેશનો માટે એકમ પરીક્ષણોમાં HTTP વિનંતીઓનું અનુકરણ કરે છે. ઉદાહરણ: mockMvc.perform(get("/test-endpoint").header("ot-custom-traceid", "12345")).
ClientHttpRequestExecution.execute પ્રદાન કરેલ વિનંતીના મુખ્ય ભાગ અને હેડરો સાથે અટકાવેલ HTTP વિનંતીને એક્ઝિક્યુટ કરે છે. ઉદાહરણ: execution.execute(request, body).

વસંત બુટમાં કસ્ટમ હેડર ટ્રેસ પ્રચાર

આ સમસ્યાને ઉકેલવામાં મુખ્ય ઘટકોમાંનું એક CustomTraceFilter છે. આ ફિલ્ટર વિસ્તરે છે OncePerRequestFilter વર્ગ, દરેક HTTP વિનંતી માટે ટ્રેસ હેડર લોજિક માત્ર એક જ વાર ચાલે છે તેની ખાતરી કરવી. સ્પ્રિંગ બૂટમાં ફિલ્ટર્સ વૈશ્વિક સ્તરે વિનંતીઓ અથવા પ્રતિસાદોને સંશોધિત કરતી વખતે અતિ ઉપયોગી છે. ઉદાહરણ તરીકે, જો ક્લાયન્ટ ટ્રેસિંગ માહિતી મોકલે છે જેમ કે ઓટી-કસ્ટમ-ટ્રેસિડ અથવા ઓટી-કસ્ટમ-સ્પેનિડ કસ્ટમ હેડરમાં, આ ફિલ્ટર વિનંતીને અટકાવે છે, આ હેડરોને બહાર કાઢે છે અને મેપ કરેલ ડાયગ્નોસ્ટિક સંદર્ભ (MDC) માં પ્રચાર કરે છે. MDC માં ટ્રેસ ID ઉમેરીને, અમે ખાતરી કરીએ છીએ કે આ ઓળખકર્તાઓ વિનંતીની પ્રક્રિયા દરમિયાન જનરેટ થયેલા લોગમાં દૃશ્યમાન છે.

MDC એ SLF4J અને લોગબેક જેવા લોગીંગ ફ્રેમવર્કનો મહત્વપૂર્ણ ભાગ છે. તે અમને વર્તમાન થ્રેડ માટે સંદર્ભ માહિતી સંગ્રહિત કરવાની મંજૂરી આપે છે, જેમ કે કસ્ટમ ટ્રેસ ID. જેવા આદેશોનો ઉપયોગ કરવો MDC.put અને MDC.clear, અમે ખાતરી કરીએ છીએ કે લૉગિંગ સિસ્ટમમાં ટ્રેસ વિગતો શામેલ છે અને સહવર્તી વિનંતીઓ વચ્ચે દૂષણ ટાળે છે. ઉદાહરણ તરીકે, જો ક્લાયન્ટ ટુ `8f7ebd8a73f9a8f50e6a00a87a20952a` તરીકે `ot-કસ્ટમ-ટ્રેસિડ` મોકલે છે, તો આ ID MDCમાં સંગ્રહિત થાય છે અને એક સુસંગત ટ્રેસ પાથ બનાવીને તમામ ડાઉનસ્ટ્રીમ લૉગ્સમાં શામેલ થાય છે.

બીજી બાજુ, આઉટગોઇંગ HTTP વિનંતીઓ માટે, રેસ્ટટેમ્પલેટ ઇન્ટરસેપ્ટર આવશ્યક ભૂમિકા ભજવે છે. અમલ કરીને ClientHttpRequestInterceptor, અમે આઉટગોઇંગ વિનંતીઓ સાથે સમાન ટ્રેસ હેડરો (`ot-custom-traceid` અને `ot-custom-spanid`) જોડી શકીએ છીએ. આ સુનિશ્ચિત કરે છે કે જ્યારે એપ્લિકેશન અન્ય માઇક્રોસર્વિસિસને કૉલ કરે છે ત્યારે ટ્રેસ સાતત્ય જાળવવામાં આવે છે. દાખલા તરીકે, જ્યારે સર્વર ટ્રેસ ID `8f7ebd8a73f9a8f50e6a00a87a20952a` સાથે વિનંતી પર પ્રક્રિયા કરે છે, ત્યારે તે આ ID ને આઉટગોઇંગ હેડરો સાથે જોડે છે, જેથી ડાઉનસ્ટ્રીમ સેવાઓ ટ્રેસને ઓળખી શકે અને તેનો પ્રચાર કરી શકે.

છેલ્લે, MockMvc સાથે લખેલા એકમ પરીક્ષણો HTTP વિનંતીઓનું અનુકરણ કરીને અને હેડર પ્રચારની ચકાસણી કરીને સમગ્ર સેટઅપને માન્ય કરે છે. વાસ્તવિક-વિશ્વ એપ્લિકેશન્સમાં, ટ્રેસ હેડરો યોગ્ય રીતે નિયંત્રિત થાય છે તેની ખાતરી કરવા માટે પરીક્ષણ નિર્ણાયક છે. ઉદાહરણ તરીકે, કસ્ટમ હેડરો સાથે GET વિનંતી મોકલીને અને પ્રતિસાદ અથવા લૉગ્સનું નિરીક્ષણ કરીને, અમે પુષ્ટિ કરી શકીએ છીએ કે ફિલ્ટર અને ઇન્ટરસેપ્ટર અપેક્ષા મુજબ કામ કરે છે. આ વ્યાપક અભિગમ સ્પ્રિંગ ક્લાઉડ સ્લીથ જેવી વારસાની અવલંબન પર આધાર રાખ્યા વિના પડકારને ઉકેલે છે. આખરે, ફિલ્ટર્સ, ઇન્ટરસેપ્ટર્સ અને MDC નું સંયોજન ટ્રેસ સાતત્ય સુનિશ્ચિત કરે છે ત્યારે પણ જ્યારે ક્લાયન્ટ કસ્ટમ હેડર્સનો ઉપયોગ કરે છે, સિસ્ટમને મજબૂત અને સંપૂર્ણ રીતે અવલોકનક્ષમ બનાવે છે. 🌟

સ્પ્રિંગ બૂટમાં કસ્ટમ ટ્રેસીંગ હેડરોનો પ્રચાર કરવો 3.4

બેકએન્ડ પ્રોસેસિંગ માટે સ્પ્રિંગ બૂટ 3.4 અને માઇક્રોમીટર સાથે જાવાનો ઉપયોગ કરવો

// Solution 1: Extract and Propagate Custom Trace Headers Manually
// Import necessary Spring Boot and Micrometer libraries
import org.slf4j.MDC;
import org.springframework.http.HttpHeaders;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class CustomTraceFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
            throws IOException {
        String traceId = request.getHeader("ot-custom-traceid");
        String spanId = request.getHeader("ot-custom-spanid");
        try {
            if (traceId != null) {
                MDC.put("traceId", traceId); // Add traceId to Mapped Diagnostic Context
            }
            if (spanId != null) {
                MDC.put("spanId", spanId);
            }
            filterChain.doFilter(request, response); // Continue request processing
        } finally {
            MDC.clear(); // Ensure MDC is cleared after processing
        }
    }
}

// Register the filter in your configuration class
@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean<CustomTraceFilter> traceFilter() {
        FilterRegistrationBean<CustomTraceFilter> registrationBean = new FilterRegistrationBean<>();
        registrationBean.setFilter(new CustomTraceFilter());
        registrationBean.addUrlPatterns("/*");
        return registrationBean;
    }
}

કસ્ટમ ટ્રેસ હેડર પ્રચાર માટે યુનિટ ટેસ્ટ

ટ્રેસ હેડર પ્રચારને માન્ય કરવા માટે JUnit અને MockMvc સાથે પરીક્ષણ

// Import necessary libraries
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@WebMvcTest
public class CustomTraceFilterTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testCustomTraceHeaders() throws Exception {
        mockMvc.perform(get("/test-endpoint")
                .header("ot-custom-traceid", "12345")
                .header("ot-custom-spanid", "67890"))
                .andExpect(status().isOk());
    }
}

RestTemplate નો ઉપયોગ કરીને HTTP વિનંતીઓમાં કસ્ટમ હેડર્સનો પ્રચાર કરવો

આઉટગોઇંગ વિનંતીઓમાં કસ્ટમ હેડરો ઉમેરવા માટે રેસ્ટટેમ્પલેટ ઇન્ટરસેપ્ટર્સનો ઉપયોગ કરવો

// Import necessary libraries
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;

public class CustomHeaderInterceptor implements ClientHttpRequestInterceptor {
    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
        HttpHeaders headers = request.getHeaders();
        headers.add("ot-custom-traceid", "12345");
        headers.add("ot-custom-spanid", "67890");
        return execution.execute(request, body);
    }
}

// Register the interceptor with RestTemplate
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getInterceptors().add(new CustomHeaderInterceptor());
        return restTemplate;
    }
}

સ્પ્રિંગ બુટ 3.4 માં OpenTelemetry સાથે વૈવિધ્યપૂર્ણ હેડર ટ્રેસને હેન્ડલ કરવું

સ્પ્રિંગ બૂટ 3.4 સાથે કામ કરતી વખતે, કસ્ટમ હેડરોમાંથી ટ્રેસને પ્રસારિત કરવા માટેનો બીજો સશક્ત અભિગમ સંકલિત કરીને છે. OpenTelemetry. OpenTelemetry, ઓપન-સોર્સ ઓબ્ઝર્વેબિલિટી ફ્રેમવર્ક, સાધનને એકીકૃત રીતે ટ્રેસ, એકત્રિત અને નિકાસ કરવામાં મદદ કરે છે. તે કસ્ટમ હેડરો જેવા ટ્રેસ સંદર્ભને બહાર કાઢવા અને ઇન્જેક્ટ કરવા માટેની પદ્ધતિઓ પ્રદાન કરે છે ઓટી-કસ્ટમ-ટ્રેસિડ અને ઓટી-કસ્ટમ-સ્પેનિડ, તમારી અરજીમાં. OpenTelemetry ના TextMapPropagator નો લાભ લઈને, તમે બિન-માનક ક્લાયન્ટ્સ અને તમારી અવલોકનક્ષમતા સિસ્ટમ વચ્ચેના અંતરને દૂર કરી શકો છો.

સ્પ્રિંગ બૂટ 3.4 માં OpenTelemetry નો ઉપયોગ કરવા માટે, કસ્ટમ હેડરોમાંથી ટ્રેસિંગ માહિતી કાઢવા અને તેને વર્તમાન ટ્રેસ સંદર્ભ સાથે જોડવા માટે કસ્ટમ પ્રચારક લાગુ કરી શકાય છે. ઉદાહરણ તરીકે, જ્યારે તમારા સર્વરને ક્લાયંટ ટુ તરફથી ઇનકમિંગ વિનંતી પ્રાપ્ત થાય છે, ત્યારે OpenTelemetry કસ્ટમ હેડરોને પાર્સ કરી શકે છે અને મૂળ ટ્રેસ સંદર્ભનું પુનઃનિર્માણ કરી શકે છે. આ સુનિશ્ચિત કરે છે કે ડાઉનસ્ટ્રીમ સેવાઓ સમાન ટ્રેસ ID જુએ છે, જે અંત-થી-એન્ડ દૃશ્યતાને મંજૂરી આપે છે. સ્પ્રિંગ ક્લાઉડ સ્લ્યુથ જેવા જૂના ઉકેલોથી વિપરીત, ઓપનટેલેમેટ્રી હલકો છે અને આધુનિક અવલોકનક્ષમતા ધોરણો સાથે ગોઠવે છે.

ઓપનટેલેમેટ્રીના પ્રચારકને માઈક્રોમીટર સાથે જોડીને, તમે તમારા મેટ્રિક્સ અને ટ્રેસ માહિતી સાથે લૉગિંગને સમૃદ્ધ બનાવી શકો છો. તમારા ઓબ્ઝર્વેબિલિટી ટૂલમાં ક્લાઈન્ટ વન અને ક્લાઈન્ટ ટુ બંને તરફથી આવતી વિનંતીઓના નિશાન જોવાની કલ્પના કરો. OpenTelemetry આપમેળે પ્રોમિથિયસ, ઝિપકીન અથવા જેગર સાથેના એકીકરણને સમર્થન આપે છે, જે તમને ટ્રેસ વિઝ્યુલાઇઝેશનને કેન્દ્રિય બનાવવા માટે સક્ષમ બનાવે છે. આ અભિગમ સુનિશ્ચિત કરે છે કે કસ્ટમ હેડરો સામેલ હોય ત્યારે પણ, કોઈ ટ્રેસ ડેટા ખોવાઈ જાય નહીં, અને ડિબગીંગ નોંધપાત્ર રીતે સરળ બને છે. 🚀

સ્પ્રિંગ બૂટમાં કસ્ટમ ટ્રેસનો પ્રચાર કરવા વિશે વારંવાર પૂછાતા પ્રશ્નો

  1. સ્પ્રિંગ બૂટમાં હું મેન્યુઅલી કસ્ટમ ટ્રેસ હેડરો કેવી રીતે એક્સટ્રેક્ટ કરી શકું?
  2. તમે ચોક્કસ હેડરને જાતે લાવવા માટે request.getHeader("custom-header") નો ઉપયોગ કરી શકો છો અને તેને MDC.put("traceId", મૂલ્ય) નો ઉપયોગ કરીને MDCમાં ઉમેરી શકો છો.
  3. કસ્ટમ ટ્રેસ પ્રચાર માટે OpenTelemetry નો ઉપયોગ કરવાનો શું ફાયદો છે?
  4. OpenTelemetry માઈક્રો સર્વિસીસમાં કસ્ટમ હેડરો સહિત, ટ્રેસનો પ્રચાર કરવા માટે આધુનિક, વિક્રેતા-તટસ્થ અભિગમ પૂરો પાડે છે.
  5. શું હું સ્પ્રિંગ બૂટમાં RestTemplate સાથે કસ્ટમ હેડરોનો પ્રચાર કરી શકું?
  6. હા, ClientHttpRequestInterceptor લાગુ કરીને, તમે આઉટગોઇંગ વિનંતીઓ સાથે ટ્રેસિડ અને સ્પેનિડ જેવા કસ્ટમ હેડરો જોડી શકો છો.
  7. વૈશ્વિક સ્તરે હેડરો કેપ્ચર કરવા માટે હું ફિલ્ટર કેવી રીતે રજીસ્ટર કરી શકું?
  8. તમે એક ફિલ્ટર બનાવી શકો છો જે OncePerRequestFilterને વિસ્તરે છે અને FilterRegistrationBean નો ઉપયોગ કરીને તેને રજીસ્ટર કરી શકો છો જેથી કરીને તમામ એન્ડપોઇન્ટ માટે હેડરો કેપ્ચર કરી શકાય.
  9. સ્પ્રિંગ બૂટમાંથી નિશાન જોવા માટે હું કયા સાધનોનો ઉપયોગ કરી શકું?
  10. ઝિપકીન, જેગર અને પ્રોમિથિયસ જેવા સાધનો અંત-થી-એન્ડ ટ્રેસને વિઝ્યુઅલાઈઝ કરવા માટે સ્પ્રિંગ બૂટ અને ઓપનટેલેમેટ્રી સાથે એકીકૃત થઈ શકે છે.

સીમલેસ ટ્રેસ સાતત્યની ખાતરી કરવી

આધુનિક સિસ્ટમોમાં, વૈવિધ્યપૂર્ણ ટ્રેસ હેડરોનું સંચાલન વિશ્વસનીય અવલોકનક્ષમતા માટે મહત્વપૂર્ણ છે. ફિલ્ટર્સ અને ઇન્ટરસેપ્ટર્સનો ઉપયોગ કરીને, તમે ક્લાયન્ટ દ્વારા પ્રદાન કરેલી ટ્રેસિંગ માહિતી મેળવી શકો છો અને તમારી સેવાઓમાં તેનો યોગ્ય રીતે પ્રચાર કરી શકો છો. આ ખંડિત લૉગ્સ અને ગુમ થયેલ નિશાનોને ટાળે છે. 🔍

સ્પ્રિંગ બૂટ 3.4, માઇક્રોમીટર અથવા ઓપનટેલેમેટ્રી સાથે જોડાયેલું, સ્પ્રિંગ ક્લાઉડ સ્લુથ જેવા જૂના સાધનો પર આધાર રાખ્યા વિના મજબૂત ઉકેલોને મંજૂરી આપે છે. ભલે તમે ક્લાયન્ટ વનના સ્ટાન્ડર્ડ હેડરો અથવા ક્લાયન્ટ ટુના કસ્ટમ હેડરો સાથે કામ કરી રહ્યાં હોવ, આ તકનીકોનો અમલ કરવાથી ટ્રેસ ગેપને અસરકારક રીતે પુલ કરવામાં આવે છે. 🚀

સ્ત્રોતો અને સંદર્ભો
  1. સ્પ્રિંગ બૂટ અધિકૃત દસ્તાવેજીકરણ: ટ્રેસિંગ સંદર્ભોનો પ્રચાર. વસંત બુટ દસ્તાવેજીકરણ
  2. OpenTelemetry for Java Developers: Guide to Trace Propagation. OpenTelemetry Java
  3. માઇક્રોમીટર અવલોકનક્ષમતા દસ્તાવેજીકરણ: કસ્ટમ ટ્રેસ હેડરને એકીકૃત કરવું. માઇક્રોમીટર અવલોકનક્ષમતા
  4. SLF4J લૉગિંગ API: મેપ્ડ ડાયગ્નોસ્ટિક કોન્ટેસ્ટ (MDC) ઉપયોગના કેસ. SLF4J મેન્યુઅલ