ã¡ã¢
ãã®ãªãªãŒã¹ã® Python ãšãŒãžã§ã³ãã§ã¯ã以äžã®ãµããŒãã远å ãããŸããã
- ã¹ãã©ã³ã
- AWS Bedrock ã³ã³ããŒã¹ã¹ããªãŒãã³ã°
- Redisã¡ãœãã
hybrid_searchãšmsetex - LLM ã€ãã³ãã®LangChainããŒã«ã®å²ãåœãŠ
- LLM èŠæ±æã«ãã£ããã£ããã LLM ã€ãã³ãã®ã¿ã€ã ã¹ã¿ã³ã
loop_factoryåé¡ããasyncio.Runner
ãã®ãªãªãŒã¹ã§ã¯ãWeb ãµãŒããŒã«ãã£ãŠããããŒãå ±åãããªã ASGI ã¢ãžã¥ãŒã«ã®ãã°ãä¿®æ£ãããŠããŸãã
Python ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§easy_install/pip/distributeã䜿çšãããã Conda-Forge ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§condaã䜿çšããŠãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã New Relic ããŠã³ããŒã ãµã€ãããçŽæ¥ããŠã³ããŒãããŸãã
ç¹åŸŽ
ã¹ãã©ã³ãã®ãµããŒãã远å
- åäžããã³è€æ°ãšãŒãžã§ã³ã (矀ãã°ã©ããªã©) èšå®ã«ã¹ãã©ã³ã ããŒã«ãšãšãŒãžã§ã³ãã®èšè£ ã远å ããŸãã
AWS Bedrock Converse Streamingã®ãµããŒãã远å
- ã¹ããªãŒãã³ã° Converse API ã®ç£èŠãµããŒãã远å ããŸããããã«ã¯ã
converse_stream()ã䜿çšã㊠boto3 ããã³ aioboto3 ã¯ã©ã€ã¢ã³ãã§è¡ããã Converse ãã£ããå®äºåŒã³åºãã®ãµããŒããå«ãŸããŸãã
- ã¹ããªãŒãã³ã° Converse API ã®ç£èŠãµããŒãã远å ããŸããããã«ã¯ã
Redisã¡ãœããã®ãµããŒãã远å
次ã®ã¡ãœããã®ãµããŒãã远å ããŸãã
hybrid_searchmsetex
loop_factoryã®ãµããŒãã远åasyncio.Runner- Python 3.11 ã§ã¯ã
asyncio.Runnerloop_factoryã远å ãããŸãããloop_factoryåé¡ã¯ãã«ãŒã ããªã·ãŒã®ä»£æ¿ææ®µãæäŸããŸãã ããã§ãã°ããŒãã« ã€ãã³ã ã«ãŒãèšå®ãŸãã¯ã«ã¹ã¿ã ã€ãã³ã ã«ãŒãã®ã©ã¡ããä»ãããã®ã§ãã£ãŠããäœæãããã«ãŒãã¯ã€ã³ã¹ãã¥ã«ã¡ã³ãåãããŸãã
- Python 3.11 ã§ã¯ã
LLM ã€ãã³ãã§LangChain ã®ããŒã«å²ãåœãŠããã£ããã£ãã
- LangChain
LlmChatCompletionMessageã€ãã³ãã«ã¯ã LangChainããå²ãåœãŠãããããŒã«ãå«ãŸããããã«ãªããŸããã
- LangChain
LLM èŠæ±æã« LLM ã€ãã³ãã®ã¿ã€ã ã¹ã¿ã³ãããã£ããã£ããŸãã
- 以åã¯ãLLM ã€ãã³ãã®ã¿ã€ã ã¹ã¿ã³ãã¯ã€ãã³ãã®äœææã«ãã£ããã£ãããŠããŸãããçŸåšã§ã¯ãLLM ãªã¯ãšã¹ãæã«ããæ£ç¢ºã«ãã£ããã£ãããããã«ãªããŸããã
ãã°ä¿®æ£
ASGIããããŒã®æ¶è²»
ASGIWebTransactionãhttp.response.startã€ãã³ãããããããŒã䜿çšããéã蚱容ãããå ¥åã¿ã€ããèæ ®ããã«äœ¿çšããŠããŸãããããããŒããžã§ãã¬ãŒã¿ãŒã§ããå Žåããžã§ãã¬ãŒã¿ãŒã¯process_response()åŒã³åºãã«ãã£ãŠæ¶è²»ãããWeb ãµãŒããŒãéä¿¡ããããããŒãæ®ã£ãŠããŸãããããã¯ä¿®æ£ãããŸããã
ãµããŒãã¹ããŒãã¡ã³ã
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Python ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
ã¡ã¢
ãã®ãªãªãŒã¹ã® Python ãšãŒãžã§ã³ãã§ã¯ãPython 3.14 ã®ãµããŒãã屿§ãã£ã«ã¿ãŒèšå®çšã®æ°ããç°å¢å€æ°ããã©ã³ã¶ã¯ã·ã§ã³ ãã³ã¬ãŒã¿ã®éåæãžã§ãã¬ãŒã¿ã®ãµããŒãã AWS Bedrockã®è¿œå ã¢ãã«ã AWS Kinesisã®æ°ããã¡ãœããã远å ãããŠããŸãããã®ãªãªãŒã¹ã§ã¯ã ConnectionPoolãè€æ°åã©ãããããŠãããšãã«RecursionErroråŒãèµ·ããaiomysqlã®ãã°ã kombuã®ãããã¥ãŒãµãŒã§ããããã£ãé©åã«æž¡ãããªããã°ãããã³shutdown_agentåéã¹ã¬ããå
ããåŒã³åºããããšãã«ãšã©ãŒãçºçãããã°ãä¿®æ£ãããŠããŸãã
Python ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§easy_install/pip/distributeã䜿çšãããã Conda-Forge ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§condaã䜿çšããŠãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã New Relic ããŠã³ããŒã ãµã€ãããçŽæ¥ããŠã³ããŒãããŸãã
ç¹åŸŽ
Python 3.14ã®ãµããŒãã远å
- Python 3.14 ã®ãµããŒãã远å ããŸãã
屿§ãã£ã«ã¿ãŒèšå®çšã®ç°å¢å€æ°ã远å ãã
以äžã®èšå®ã¯ãç°å¢å€æ°ãéããŠèšå®ã§ããããã«ãªããŸããã
æ§æèšå® ç°å¢å€æ° attributes.enabledNEW_RELIC_ATTRIBUTES_ENABLEDattributes.excludeNEW_RELIC_ATTRIBUTES_EXCLUDEattributes.includeNEW_RELIC_ATTRIBUTES_INCLUDEbrowser_monitoring.attributes.enabledNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_ENABLEDbrowser_monitoring.attributes.excludeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_EXCLUDEbrowser_monitoring.attributes.includeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_INCLUDEerror_collector.attributes.enabledNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_ENABLEDerror_collector.attributes.excludeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_EXCLUDEerror_collector.attributes.includeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_INCLUDEspan_events.attributes.enabledNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_ENABLEDspan_events.attributes.excludeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_EXCLUDEspan_events.attributes.includeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_INCLUDEtransaction_events.attributes.enabledNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_ENABLEDtransaction_events.attributes.excludeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_EXCLUDEtransaction_events.attributes.includeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_INCLUDEtransaction_segments.attributes.enabledNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_ENABLEDtransaction_segments.attributes.excludeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_EXCLUDEtransaction_segments.attributes.includeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_INCLUDEtransaction_tracer.attributes.enabledNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_ENABLEDtransaction_tracer.attributes.excludeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_EXCLUDEtransaction_tracer.attributes.includeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_INCLUDE
ãã©ã³ã¶ã¯ã·ã§ã³ ãã³ã¬ãŒã¿ã«éåæãžã§ãã¬ãŒã¿ã®ãµããŒãã远å ãã
- 以åã¯ããã©ã³ã¶ã¯ã·ã§ã³ ãã³ã¬ãŒã¿ã¯éåæãžã§ãã¬ãŒã¿ãã©ããããããšããµããŒãããŠããŸããã§ããããã®ãµããŒãã远å ãããéåæãžã§ãã¬ãŒã¿ãŒ ãã©ã³ã¶ã¯ã·ã§ã³ã¯ã€ãã³ã ã«ãŒãã®åŸ æ©æéããã®ä»ã®çµ±èšãèªåçã«æž¬å®ããããã«ãªããŸããã
AWS Bedrock èšè£ ã«è¿œå ã¢ãã«ã®ãµããŒãã远å
botocoreããã³aiobotocoreãéããŠAWS Bedrock èšè£ ãæŽæ°ãã以äžã®è¿œå ã¢ãã«ããµããŒãããŸãã
- ã¯ããŒãã»ãœããã 3+ ã¢ãã«
- ãªãŒãžã§ã³ããã¬ãã£ãã¯ã¹ãšããŠä»ããã¢ãã«ïŒãªãŒãžã§ã³å¯Ÿå¿ïŒ
æ°ãã Kinesis ã¡ãœããçšã®èšè£ ã远å
æ°ããAWS Kinesis ã¡ãœããããµããŒãããããã«botocoreèšè£ ã远å
describe_account_settingsupdate_account_settingsupdate_max_record_sizeupdate_stream_warm_throughput
ãã°ä¿®æ£
aiomysql ConnectionPool ã§ã®ååž°ãšã©ãŒãé²ã
- 以åã¯ãããŒã«ãããæ¥ç¶ã䜿çšãããšã aiomysqlã§
RecursionErrorãçºçããŠããŸãããç¹°ãè¿ãã®ã©ããã³ã°ã«ãããããŒã«ãããæ¥ç¶ã®åšå²ã«æ·±ãObjectProxyãã§ãŒã³ãäœæãããŸãããããã¯ä¿®æ£ãããŸããã
- 以åã¯ãããŒã«ãããæ¥ç¶ã䜿çšãããšã aiomysqlã§
kombuã®ãããã¥ãŒãµãŒã§ããããã£ãé©åã«æž¡ãããªããã°ãä¿®æ£ããŸãã
kombu.messaging.Producer.publish()ã®èšè£ ã«ãããããããã£ã誀ã£ãŠèŸæžå ã«ãã¹ããããããããã£ãééã£ãå Žæã«é 眮ãããäžæµã®ããã±ãŒãžã«ãã£ãŠèªã¿åãããªããªããã°ãä¿®æ£ããŸããã
shutdown_agentãåéã¹ã¬ããå ããåŒã³åºããããšãã®ãšã©ãŒãä¿®æ£ããŸãã- 以åã¯ã
shutdown_agentåéã¹ã¬ããå ããåŒã³åºããããšãã«RuntimeErrorãçºçããå¯èœæ§ããããŸãããããã«ãããã¯ã©ãã·ã¥ãé²ãã¬ãŒãã远å ãããåé¡ãä¿®æ£ãããŸãã
- 以åã¯ã
ãµããŒãã¹ããŒãã¡ã³ã
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Python ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
ã¡ã¢
PythonãšãŒãžã§ã³ãã®ãã®ãªãªãŒã¹ã§ã¯ã Djangoèšè£
ã®æ©æã¢ã¯ãã£ããŒã·ã§ã³ã®ä¿®æ£ãç¡èŠãããmax_samples_storedãµãŒããŒåŽãªãŒããŒã©ã€ããããã³trace_cache.pop()ããã®ã¯ã©ãã·ã¥ã«å¯Ÿããä¿è·ãæäŸãããŸãã
Python ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§easy_install/pip/distributeã䜿çšããŠãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã New Relic ããŠã³ããŒã ãµã€ãããçŽæ¥ããŠã³ããŒãããŸãã
ãã°ä¿®æ£
Djangoèšè£ ã§ã®æ©æã¢ã¯ãã£ããŒã·ã§ã³ã鲿¢ããŸã
- ãã©ãŒã¯åã®ã¢ããªã±ãŒã·ã§ã³ã§ã®æ©æã¢ã¯ãã£ããŒã·ã§ã³ã®åé¡ãé²ãããã«ã Djangoèšè£
ã®
application_settings()ãžã®åŒã³åºããåé€ããŸãã
- ãã©ãŒã¯åã®ã¢ããªã±ãŒã·ã§ã³ã§ã®æ©æã¢ã¯ãã£ããŒã·ã§ã³ã®åé¡ãé²ãããã«ã Djangoèšè£
ã®
ãµãŒããŒèšå®ãšããŒã«ã«èšå®ã®åæã®åé¡ãä¿®æ£
- ããã¯ã
event_harvest_config.harvest_limits.*èšå®ã廿¢ããã*.max_samples_storedèšå®ã«çœ®ãæãããããšãã«çºçãããã°ãä¿®æ£ããŸããäžéšã®ãµãŒããŒåŽèšå®ãã¯ã©ã€ã¢ã³ãåŽèšå®ããªãŒããŒã©ã€ãããŠããªãããããŠãŒã¶ãŒããããç¡å¹ã«ããŠããã«ãããããããããŒã¿ãã³ã¬ã¯ã¿ãŒã«éä¿¡ãããŠããŸããŸããã
- ããã¯ã
è¡çªããå®ã
trace_cache.pop()ContextOfã¯ã©ã¹ã§ãããã©ã«ãå€ã®ãªãpop(key)çµç±ã®trace_cacheãžã®å®å šã§ãªãã¢ã¯ã»ã¹ããããŸãããããã«ãããèŸæžå ã®weakrefããã§ã«ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãããŠããå Žåã«ã¯ã©ãã·ã¥ãçºçããŸããã
ãµããŒãã¹ããŒãã¡ã³ã
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Python ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
ã¡ã¢
Prudence
ãã®ããŒãžã§ã³ã®ãšãŒãžã§ã³ãã¯æ€åãããŸããã
ãã®ãªãªãŒã¹ã® Python ãšãŒãžã§ã³ãã§ã¯ã次ã®å€æŽãå ããããŠããŸãã
- Python 3.7ã®ãµããŒããåé€
- ããŸããŸãªAPIãšèšå®ãåé€ãŸãã¯å»æ¢ããŸã
- aioredisèšè£ ã廿¢ããŸã
setuptoolsã®ãµããŒããããŠããæå°ããŒãžã§ã³ãäžããsetuptools_scm- AutoGençšã®æ°ããèšè£ ã远å
- Pyzeebeçšã®æ°ããèšè£ ã远å
- æ°ããMCPïŒã¢ãã«ã³ã³ããã¹ããããã³ã«ïŒååä»ãã¹ãã³ã远å ããŸã
- psycopgã®ã¯ã©ãã·ã¥ãä¿®æ£
- AIã¢ãã¿ãªã³ã°ãæå¹ãªå Žåã«ã®ã¿MCPã¹ãã³ãèšé²ãããããã«ããŸã
Python ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§easy_install/pip/distributeã䜿çšããŠãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã New Relic ããŠã³ããŒã ãµã€ãããçŽæ¥ããŠã³ããŒãããŸãã
åé€ãããæ©èœ
Python 3.7ã®ãµããŒããåé€
- Python 3.7 㯠2023 幎 6 æ 27 æ¥ã« EOL ãšãªããŸãããPython ãšãŒãžã§ã³ãã§ã¯ããã®ãµããŒãã廿¢ãããŸããã
ããŸããŸãªéæšå¥šAPIãåé€ããŸã
次㮠API ã¯åé€ãããŸãã:
ã¬ã¬ã·ãŒAPI ãªãã¬ãŒã¹ã¡ã³ãAPI accept_distributed_trace_payloadaccept_distributed_trace_headersadd_custom_parameteradd_custom_attributeadd_custom_parametersadd_custom_attributescreate_distributed_trace_payloadinsert_distributed_trace_headersget_browser_timing_footerãã®æ©èœã¯ get_browser_timing_header()ã«ã©ãããããŠããŸãrecord_exceptionnotice_error()NewRelicLogHandlerNewRelicLogForwardingHandlerlambda_handlerïŒLambdaHandlerWrapperãããã® API 㯠newrelic-lambdaããã±ãŒãžã«ç§»åãããŸããã
ããŸããŸãªéæšå¥šã®èšå®ãåé€ããŸã
以äžã®èšå®ã¯åé€ãããŸãã:
ã¬ã¬ã·ãŒèšå® 眮æèšå® transaction_tracer.capture_attributestransaction_tracer.attributes.enablederror_collector.capture_attributeserror_collector.attributes.enabledbrowser_monitoring.capture_attributesbrowser_monitoring.attributes.enabledanalytics_events.enabledtransaction_events.enabledanalytics_events.capture_attributestransaction_events.attributes.enablederror_collector.ignore_errorserror_collector.ignore_classesstrip_exception_messages.whiteliststrip_exception_messages.allowlistsslããã¯çŸåš trueã«ããŒãã³ãŒããããŠãããããèšå®ãªãã·ã§ã³ãšããŠã¯åé€ãããŸãããignored_params代ããã« newrelic.attributes.exclude = request.parameters.{name}䜿çšããŠãã ãããåãªã¯ãšã¹ãã®ããŒãã«ã³ãã§åºåã£ãŠnewrelic.attributes.excludeãªã¹ãã«è¿œå ããŸãã ããŒã®å é ã«å¿ ãrequest.parametersãä»ããŠãã ãããagent_limits.merge_stats_maximumããã¯ããµãŒããŒåŽã®èšå®ãåªå ããŠå®å šã«ç¡èŠãããããã«ãªããŸããã
éæšå¥šã®æ©èœ
aioredisã®èšè£ ã¯éæšå¥šã«ãªããŸãã
- aioredisããã±ãŒãžã¯éæšå¥šãšãªãã代ããã«ãµãã¢ãžã¥ãŒã«
redis.asyncioãå«ãŸããredisãæšå¥šãããŸãããã®çµæãaioredisã®èšè£ ãéæšå¥šã«ãªããŸããã 代ããã«redisã©ã€ãã©ãªã䜿çšããŠãã ããããã®èšè£ ã¯å°æ¥ã®ãªãªãŒã¹ã§åé€ãããäºå®ã§ãã
- aioredisããã±ãŒãžã¯éæšå¥šãšãªãã代ããã«ãµãã¢ãžã¥ãŒã«
ä»ã®èšèªãšãŒãžã§ã³ããšäžèŽããããã«ãæ¢åã®åç©«èšå®ã®äžéšã廿¢ããŸãã
ä»ã®èšèªãšãŒãžã§ã³ãã®èŠåãšã®äžè²«æ§ãä¿ã€ããã«ã次ã®åéèšå®ã¯éæšå¥šã«ãªããŸããã
ã¬ã¬ã·ãŒèšå® 眮æèšå® event_harvest_config.harvest_limits.analytic_event_datatransaction_events.max_samples_storedevent_harvest_config.harvest_limits.span_event_dataspan_events.max_samples_storedevent_harvest_config.harvest_limits.error_event_dataerror_collector.max_event_samples_storedevent_harvest_config.harvest_limits.custom_event_datacustom_insights_events.max_samples_storedevent_harvest_config.harvest_limits.log_event_dataapplication_logging.forwarding.max_samples_storedããã¯ããããã®èšå®ã®ååã
*.max_samples_storedããevent_harvest_config.harvest_limits.*ãã©ãŒã ã«å€æŽãã以åã®å€æŽãå ã«æ»ãããã®ã§ãããã®æ±ºå®ã¯èŠãããèšå®åã倿Žããªãã£ãä»ã®èšèªãšãŒãžã§ã³ããšäžèŽããããã«ãå ã®èšå®åã埩å ãããŸãããéæšå¥šã®èšå®ã¯ä»ã®ãšããã¯åŒãç¶ãæ©èœããŸãããå°æ¥ã®ãªãªãŒã¹ã§ã¯åé€ãããäºå®ã§ãã
WSGIç°å¢èŸæžã«ãããšãŒãžã§ã³ãã®èšå®ãéæšå¥šã«ããŸã
以å㯠WSGI environ èŸæžãéããŠæ§æå¯èœã ã£ã以äžã®èšå®ã¯éæšå¥šã«ãªããŸããããããã®èšå®ã¯ãç°å¢å€æ°ãŸãã¯èšå®ãã¡ã€ã«ãéããŠæ§æããŠãã ããã
newrelic.set_background_tasknewrelic.suppress_apdex_metricnewrelic.suppress_transaction_tracenewrelic.capture_request_paramsnewrelic.disable_browser_autorum
setuptools<61.2ãŸãã¯setuptools_scm<6.4setuptoolsãšsetuptools_scmã®ãµããŒããããæå°ããŒãžã§ã³ããããã61.2ãš6.4ã«å¢å ãããŸãããããã¯ãããã±ãŒãž ã¡ã¿ããŒã¿ãšãã«ãæé ãæ§æããããã®pyproject.tomlã®äœ¿çšããµããŒãããããã®ãã®ã§ãããšãŒãžã§ã³ãã¯ãããæ°ãããã«ã ããŒã«ã䜿çšããŠãã«ãã§ããããã«ãªããpyproject.tomlãã¡ã€ã«ããªãããšã«é¢ããèŠåããã°ã«èšé²ãããªããªããŸããã- ãã®å€æŽã«ãããããã±ãŒãžã«æ°ããããŒãžã§ã³å±æ§
newrelic.__version__ãšnewrelic.__version_tuple__ã远å ãããå®è¡æã«ãšãŒãžã§ã³ãã®ããŒãžã§ã³ãããã°ã©ã ã§ç¢ºèªã§ããããã«ãªããŸãã
æ°æ©èœ
AutoGençšã®æ°ããèšè£ ã远å
- AutoGenã®ãšãŒãžã§ã³ããšããŒã«ã®èšè£
(ååä»ãã¹ãã³ãšã«ã¹ã¿ã
Llmã€ãã³ã) ã远å ããŸã
- AutoGenã®ãšãŒãžã§ã³ããšããŒã«ã®èšè£
(ååä»ãã¹ãã³ãšã«ã¹ã¿ã
Pyzeebeçšã®æ°ããèšè£ ã远å
- Pyzeebeã«èªåèšè£ ããã³ãã¬ãŒã ã¯ãŒã¯åºæã®ãšãŒãžã§ã³ã ããããã£ã远å
æ°ããMCPïŒã¢ãã«ã³ã³ããã¹ããããã³ã«ïŒååä»ãã¹ãã³ã远å ããŸã
- ããŒã« ãããŒãžã£ãŒçµç±ã§è¡ããã MCP (ã¢ãã« ã³ã³ããã¹ã ãããã³ã«) ããŒã«åŒã³åºãã«æ°ããååä»ãã¹ãã³ã远å ããŠãã¹ããªãŒãã³ã°å¯èœãª HTTP ããµããŒãããŸãã
ãã°ä¿®æ£
psycopg>=3.2.0ãåŒã³åºããšãã«çºçããã¯ã©ãã·ã¥ãä¿®æ£ããŸããas_string()as_string()ã¡ãœããã§åŒæ°ãäžèŠã«ãªããã¯ã©ãã·ã¥ãçºçããå¯èœæ§ãããpsycopg>=3.2.0ã®åé¡ãä¿®æ£ããŸããããã®åé¡ã¯ä¿®æ£ããããã®ã¡ãœããã®äž¡æ¹ã®ã·ã°ããã£ããµããŒããããããã«ãªããŸããã
AIã¢ãã¿ãªã³ã°ãæå¹ãªå Žåã«ã®ã¿MCPïŒã¢ãã«ã³ã³ããã¹ããããã³ã«ïŒã¹ãã³ãèšé²ãããããã«ããŸã
- èšå®
ai_monitoring.enabledãæå¹ã«ãªã£ãŠããå Žåã«ã®ã¿ãMCP (ã¢ãã« ã³ã³ããã¹ã ãããã³ã«) ã¹ãã³ãèšé²ãããããã«ããŸãã
- èšå®
ãµããŒãã¹ããŒãã¡ã³ã
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Python ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
ã¡ã¢
ãã®ãªãªãŒã¹ã® Python ãšãŒãžã§ã³ãã§ã¯ã以äžã®ãµããŒãã远å ãããŸããã
- Celeryã®ã«ã¹ã¿ã ã¿ã¹ã¯
- Graphene-Djangoç£èŠ
- Djangoã®ããã«ãŠã§ã¢ãã£ã«ã¿ãªã³ã°
- AWS Bedrock ã³ã³ããŒã¹API
- W3CTraceParent ããããŒã®ãµã³ããªã³ã°ãã©ã°
ãã®ãªãªãŒã¹ã§ã¯ã次ã®ä¿®æ£ãæäŸãããŠããŸãã
- GraphQL ã«ãããæãæ·±ããŠããŒã¯ãã¹ã®ä¿è·
- ãŠã§ã URL ãªã¯ãšã¹ãè§£æã®å®å šç
- ElasticSearchãšGraphQLã®ãã©ãŒã«ããã¯
trace.settings==None - éåæ ElasticSearch ã¯ã©ã€ã¢ã³ã ãªã¹ããã
optionsã¡ãœãããåé€ããŸã
Python ããã±ãŒãž ã€ã³ããã¯ã¹çµç±ã§easy_install/pip/distributeã䜿çšããŠãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã New Relic ããŠã³ããŒã ãµã€ãããçŽæ¥ããŠã³ããŒãããŸãã
æ°æ©èœ
Celeryã®ã«ã¹ã¿ã ã¿ã¹ã¯ã®ãµããŒãã远å
- Celeryã®ã«ã¹ã¿ã ã¿ã¹ã¯ ã¯ã©ã¹ã®ç£èŠãµããŒãã远å ããŸãã以åã¯ãããã©ã«ãã®ã¿ã¹ã¯ ã¯ã©ã¹ã䜿çšããã¿ã¹ã¯ã®ã¿ãã¢ãã¿ãŒã§ããŸããã æ³šæ: ãã®ããŒãžã§ã³ã® Python ãšãŒãžã§ã³ãã¯ã Celery ããŒãžã§ã³v5.2.0æªæºããµããŒãããªããªããŸãã
Graphene-Djangoã®ãµããŒãã远å
- Graphene-Djangoã§äœæãããåæã¹ããŒãã®ç£èŠãµããŒãã远å ããŸãã以åã¯ãGraphene-Django ã§äœæãããã¹ããŒãã¯éšåçã«ããã¢ãã¿ãŒãããã GraphQLé¢é£ã®å±æ§ãæ¬ èœããŠããŸããã
Django ã®ããã«ãŠã§ã¢ãã£ã«ã¿ãªã³ã°ã®ãµããŒãã远å
ãŠãŒã¶ãŒã¯ãã©ã®Djangoããã«ãŠã§ã¢ãç£èŠãããããã£ã«ã¿ãªã³ã°ã§ããããã«ãªããŸããã 远å èšå®ã 3 ã€ãããŸãã
instrumentation.middleware.django.enabled(ããã©ã«ãã¯trueã§ã)instrumentation.middleware.django.excludeinstrumentation.middleware.django.include
詳现ãšäŸã«ã€ããŠã¯ã Django ããã«ãŠã§ã¢ ãã£ã«ã¿ãªã³ã° ããŒãžãåç §ããŠãã ããã
AWS Bedrock Converse APIã®ãµããŒãã远å
- éã¹ããªãŒãã³ã°Converse API ã®ç£èŠãµããŒãã远å ããŸããããã«ã¯
boto3ããã³aioboto3ã¯ã©ã€ã¢ã³ãã䜿çšããŠè¡ãããconverseãã£ããå®äºåŒã³åºãã®ãµããŒããå«ãŸããŸãã
- éã¹ããªãŒãã³ã°Converse API ã®ç£èŠãµããŒãã远å ããŸããããã«ã¯
W3CTraceParent ããããŒã®ãµã³ããªã³ã°ãã©ã°ã®ãµããŒãã远å
- ã¢ããã¹ããªãŒã ãµãŒãã¹ããµã³ããªã³ã° ãã©ã°ãèšå®ãã W3CTraceParent ããããŒãéä¿¡ãããšãNew Relic ã¯çŸåšã®ãã©ã³ã¶ã¯ã·ã§ã³ããµã³ããªã³ã°ãããã©ãããæ±ºå®ããéã«ãã®ãµã³ããªã³ã°æ±ºå®ãèæ ®ããŸãã
ãªã¢ãŒã芪ããµã³ããªã³ã°ããããã©ããã«åºã¥ããµã³ããªã³ã°æ±ºå®ã®ãµããŒãã远å ããŸãã
2 ã€ã®æ°ããèšå®ãªãã·ã§ã³ã®ãµããŒãã远å ãããŸããã
distributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
defaultããã¯ããã©ã«ãã®åäœã§ããããã®å€æŽåãšåãããã«åäœããŸã (ãµã³ããªã³ã°ã®æ±ºå®ãé©å¿ãµã³ããªã³ã° ã¢ã«ãŽãªãºã ã«æž¡ããŠããã©ã³ã¶ã¯ã·ã§ã³ããµã³ããªã³ã°ãããã©ãããæ±ºå®ããŸã)ãalways_onãªã¢ãŒã芪ããµã³ããªã³ã°ããããã¬ãŒã¹ãšãªã¢ãŒã芪ããµã³ããªã³ã°ãããŠããªããã¬ãŒã¹ãåžžã«ãµã³ããªã³ã°ãããããšãæå³ããŸããalways_offãªã¢ãŒã芪ããµã³ããªã³ã°ããããã¬ãŒã¹ããŸãã¯ãªã¢ãŒã芪ããµã³ããªã³ã°ãããŠããªããã¬ãŒã¹ã¯ãµã³ããªã³ã°ãããªãããšãæå³ããŸãã
ãã°ä¿®æ£
GraphQL ã®æãæ·±ããŠããŒã¯ãã¹ã«å®å šçã远å ãã
- äžéšã®ãŠãŒã¶ãŒã¯ããã£ãŒã«ãåã
Noneãè¿ãããã GraphQLã®æãæ·±ãäžæã®ãã¹ãçæãããªããšããåé¡ãçµéšããŠããŸããããã®åé¡ã¯ä¿®æ£ãããŸããã
- äžéšã®ãŠãŒã¶ãŒã¯ããã£ãŒã«ãåã
Webãªã¯ãšã¹ãè§£æã®å®å šçã远å ãã
request_uriãäžæ£ãªåœ¢åŒã§ãã£ããç¡å¹ãªæåãå«ãŸããŠãããããå Žåã«ãäžéšã®ãŠãŒã¶ãŒã«è§£æãšã©ãŒãçºçããŸããããã®æç¹ã§ããªã¯ãšã¹ã ããããŒã®request_uriãç¡å¹ã§ãããæåã«æå®ããã (æå¹ãª) URL ãšäžèŽããªãå Žåã«ãããçºçããå¯èœæ§ããããŸãããã®å®å šå¯Ÿçã¯çŸåš New Relic ã«å°å ¥ãããŠããŸãããurllib2025 幎 1 æ 31 æ¥ä»¥éã«ãªãªãŒã¹ããã Python ã®ããŒãžã§ã³ã«å¯ŸããŠãã®åé¡ã解決ããŸããã
ElasticSearchãšGraphQLã®ã¯ã©ãã·ã¥ãä¿®æ£
trace.settings==Nonetrace.settingsãNoneã®å ŽåãElasticSearch ã®èšè£ ã«ããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããŸãããglobal_settingsãã©ãŒã«ããã¯ãèšå®ãããŸãããããã«ãããGraphQL ã§èŠã€ãã£ãåãåé¡ã解決ãããŸãã
éåæ ElasticSearch ã¯ã©ã€ã¢ã³ã ãªã¹ããã
optionsã¡ãœãããåé€ããŸã- ElasticSearch ã®ä»¥åã®èšç»ã§ã¯ã
optionséåæã¡ãœããã®ãªã¹ãã«ãã£ãããã¯ã©ãã·ã¥ãçºçããŸããã ãã®ã¡ãœããã¯ãããŒã¿ã¹ãã¢ã®æäœãrequestsãå®è¡ãããã®ã§ã¯ãªããããDatastoreTraceã«ã©ãããããªããªããŸããã
- ElasticSearch ã®ä»¥åã®èšç»ã§ã¯ã
ãµããŒãã¹ããŒãã¡ã³ã
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Python ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã